【问题标题】:API test MongoDB nodes express ec2API测试MongoDB节点表达ec2
【发布时间】:2022-01-21 13:10:21
【问题描述】:

我使用 nodejs、express 和 mongodb 创建了应用程序,当我使用 Postman 测试 API 时,我得到 Hello world!。但是当我将集合添加到 API URL 时,我收到了这个错误:

User-Agent: PostmanRuntime/7.28.4
Accept: */*
Cache-Control: no-cache
Postman-Token: 5b0aecbd-61a0-4cd6-a197-f04f37df5198
Host: XXXXXXXX.us-west-2.compute.amazonaws.com:3000
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

服务器代码是:

    var express = require("express");
    var app = express();
    var MongoClient = require("mongodb").MongoClient;
    
    app.get("/", function(req, res) {
      res.send("Hello World!");
    });
    
    app.get("/users", function() {
      MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
        if (err) next
        db
          .collection("users")
          .find()
          .toArray(function(err, result) {
            if (err) throw err;
    
            res.json(result)
          });
      });
    });
    
    app.listen(3000,function(){
        console.log('Express app start on port 3000')
    });

什么可能导致错误?

mongodb shell版本是3.6.8 节点版本为 17.3

【问题讨论】:

    标签: node.js mongodb api express amazon-ec2


    【解决方案1】:

    您忘记在 /users 端点中添加 req 和 res 参数

    应该是这样的

    app.get("/users", function(req, res) {
    

    你的代码中没有下一个函数

    if (err) next
    

    【讨论】:

    • 感谢 David 的回复,我必须在这里做什么“并且您的代码中没有下一个函数”?
    • 您正在尝试调用名为 next 的函数,但您没有具有该名称的函数。要修复它,您可以创建一个具有下一个名称的函数,或者只是抛出错误而不是调用下一个。
    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 2016-06-24
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2020-05-29
    相关资源
    最近更新 更多