javascript - 在 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()
请让我知道我在上面的代码中做错了什么。
谢谢
解决方案
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");
}
});
}
});
});
推荐阅读
- c# - DataReader 没有获取值
- laravel - 如何扩展 Laravel Log::info() (不创建新类)?
- c# - 使用和处理带有 MailMessage 的附件
- windows - 单击批处理文件与将文件夹拖到批处理文件上时,循环目录搜索结果的批处理文件会发生变化
- ansible - 如何在ansible中使用字典键一一包含文件?
- c# - Crystal Report 在报表后插入空白页
- php - php构建数组/json对象结构
- python - 安装张量流的问题
- c# - 如何在 C# 中向我的实体添加一个具有复合主键的表?
- c# - 更改 TreeView 的 ItemsSource 时缺少子项