首页 > 解决方案 > 在 MongoDB 中插入数据后无法从节点服务器获得响应

问题描述

我正在使用 Node.js 在 MongoDB 中插入数据。但是插入后我没有得到来自服务器的响应,类似这样的数据已保存。 这是我的代码。

const express = require('express');
const mongoClient = require('mongodb').mongoClient;
const bodyParser = require('body-parser');
var app = express();

var url = "http://localhost:3000/";

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));

app.post('/',(req,res) => {

    mongoClient.connect(url,(err,db) => {

         if(err){
            console.log("Error:" +err);
         }
        else{

          var obj = {Name : req.body.name};
          var collection = db("User").collection("Users");

          collection.insertOne(obj,(err,res) => {

             if(err){
               console.log("Error:" +err); 
             }
            else{
               res.send("Data has been saved");     
              }

             });

          }
    });
});

它显示的错误:

 TypeError: res.send() is not a function at collection.insertOne()

请让我知道我在上面的代码中做错了什么。

谢谢

标签: javascriptnode.jsmongodb

解决方案


res.send实际上是指 的响应insertOne(),因此您需要重命名该参数,使其不会覆盖实际res参数。

将您的代码更改为

app.post('/',(req,res) => {

  mongoClient.connect(url,(err,db) => {

    if(err){
      console.log("Error:" +err);
    }
    else{

      var obj = {Name : req.body.name};
      var collection = db("User").collection("Users");

      collection.insertOne(obj,(err,insertReponse) => {

        if(err){
          console.log("Error:" +err);
        }
        else{
          res.send("Data has been saved");
        }

      });

    }
  });
});

推荐阅读