2017-03-05 66 views
0

我使用expressjs(版本3.10.10),猫鼬(版本3.10.10)和mLab。Model.remove()根本不起作用

这里是我的代码,

app.get("/deleteDevice/:query", function(req, res) { 

    var query = req.params.query; 
    query = JSON.stringify(query); 

    vehicleSchemaModel.remove({ deviceID: query }, res.redirect("/devices")); 
    vehicleSchemaModel.findOneAndRemove({ deviceID: query }, res.redirect("/devices")); 
}); 

正如你可以看到我已经尝试了两种方法来删除文档按本document,但是没有一次成功。

你能告诉我我做错了什么吗?

回答

1

无极

vehicleSchemaModel.remove({ deviceID: query }) 
.then(returned => res.redirect("/devices")) 
.catch(err => {console.log(err) }) 

或回调

vehicleSchemaModel.remove({ deviceID: query }, function(err, doc){ 
    if(err) console.log(err); 
    res.redirect("/devices") 
}) 

在控制台检查错误。这很有帮助。

+0

谢谢,您的解决方案在评论字符串化行之后都运行良好。虽然使用诺言显示了一个DeprecationWarning。 – Tareq

+0

预期不推荐使用警告。尝试添加类似'mongoose.Promise = Promise'的地方,您可以在其中设置猫鼬模式(或者在您需要猫鼬或猫鼬连接之后)。重点是您必须添加它来摆脱警告。做这样的事情告诉猫鼬如何使用承诺,这种情况下,你告诉它使用常规JS承诺,而不是承诺库或非。 –

0

尝试是这样的:

vehicleSchemaModel.find({ deviceID: query }).remove(res.redirect("/devices")); 
+0

尝试过,但它没有奏效。 – Tareq