考虑以下代码:
app.delete('/customer/:id',(req,res) =>{
var idRemove = String(req.params.id);
console.log(idRemove);//this part is working
var user = new Customers(req.body);
console.log(user)//this part is working
user.findByIdAndRemove({id :idRemove},(err, doc) => {
if (!err)
res.status(200).send(doc);
else {
res.status(500).send(err)
//showing error here telling me that user.findByIdAndRemove is not a function
}
})
});
我收到一条错误消息,指出“ .findByIdAndRemove不是函数。”
如何防止此错误?
答案 0 :(得分:0)
查看文档https://mongoosejs.com/docs/api.html
findByIdAndRemove
不在原型上,我认为这意味着他们打算让您直接访问模型:
例如
const Example = mongoose.model('Example',
new mongoose.Schema({
description: String
})
);
Example.findByIdAndRemove({}, (err, doc) => {})
这是有道理的,因为使用特定的DTO实例访问/修改另一个实例会有些尴尬。
答案 1 :(得分:0)
在mongoDB中,_id
是数据库中特定项目的ID的保留关键字。我相信您应该在代码中将id
从_id
更改为user.findByIdAndRemove({_id :idRemove},(err, doc) =>
。例如:
#include<stdio.h>
int main(int argc, char *argv[]) {
int num,dummy;
for (int i=argc-1;i;i--){
if (sscanf(argv[i], "%d%c", &num, &dummy) == 1) {
printf("Got a integer -> %d\n",num);
} else {
printf("Got garble\n");
}
}
return 0;
}