使用MongoDB和Node.js更新文档时出现以下错误。
错误:
TypeError: db.profile.updateOne is not a function
at exports.updateProfile (C:\xampp\htdocs\cit_node\route\route.js:101:13)
at Layer.handle [as handle_request] (C:\xampp\htdocs\cit_node\node_modules\e
xpress\lib\router\layer.js:95:5)
at next (C:\xampp\htdocs\cit_node\node_modules\express\lib\router\route.js:1
31:13)
at Route.dispatch (C:\xampp\htdocs\cit_node\node_modules\express\lib\router\
route.js:112:3)
at Layer.handle [as handle_request] (C:\xampp\htdocs\cit_node\node_modules\e
xpress\lib\router\layer.js:95:5)
at C:\xampp\htdocs\cit_node\node_modules\express\lib\router\index.js:277:22
at Function.process_params (C:\xampp\htdocs\cit_node\node_modules\express\li
b\router\index.js:330:12)
at next (C:\xampp\htdocs\cit_node\node_modules\express\lib\router\index.js:2
71:10)
at Immediate.<anonymous> (C:\xampp\htdocs\cit_node\node_modules\express-sess
ion\index.js:433:7)
at Immediate.immediate._onImmediate (timers.js:425:18)
我正在使用mongojs
驱动程序连接mongoDB。我正在解释下面的代码。
exports.updateProfile=function(req,res){
var colg_name=req.body.colg_name;
var colg_shname=req.body.colg_shname;
var address=req.body.address;
var cont_no=req.body.cont_no;
var email=req.body.email;
var id=req.body.id;
db.profile.updateOne({_id:db.ObjectId(id)},{$set:{colgname:colg_name,colgSname:colg_shname,address:address,contno:cont_no,email:email}},function(err,docs){
if(!err){
if(docs){
res.send("Profile has updated suceessfully");
}
}
if(err){
res.send("Profile could not updated suceessfully");
}
});
}
我正在关注this link更新记录。请帮我解决此错误。
答案 0 :(得分:0)
您需要访问db对象,然后访问配置文件集合的集合对象。一种方法是在名为db.js的文件中建立连接,然后导出其他脚本可以“必需”的db对象,或者另一种方法是使updateProfile函数接受db或collection对象作为函数中的参数。发生错误是因为对象没有您认为具有的属性。