javascript - router.delete 返回空数组
问题描述
我正在尝试添加一个函数,该函数通过 id 删除 MongoDB 中的记录,但结果我得到一个空数组并且记录没有被删除。
到目前为止,这是我的代码:
//router
router.delete('/comandas/:id', (req, res) => {
deleteLine(req.params.id)
res.status(500).end()
});
});
//delete function
const objectId = require('mongodb').ObjectID;
const init = () =>
MongoClient.connect(connectionUrl, { useNewUrlParser: true, useUnifiedTopology: true }).then((client) => {
db = client.db(dbName)
})
const deleteLine = (id) => {
const collection = db.collection('comanda')
return collection.deleteOne({"_id": objectId(id)})
}
解决方案
您在 deleteLine 函数中返回一个承诺,在您的路由器中实际运行它需要像这样添加然后阻止:
deleteLine(req.params.id).then(result => {
console.log(result);
//todo: send response
})
.catch(err => {
console.log(err);
//todo: send error response
})
推荐阅读
- mongodb - MongoDB - 设置是否为空或空查询运算符
- python - Google Cloud 上的 TensorFlow 问题
- php - PHP:找到递归函数的最短解决方案
- javascript - 从多维数组jquery中获取值
- jenkins - Git插件没有注入环境变量
- azure - 如何通过 Azure 门户更改 Azure 函数的日志记录详细程度?
- ruby-on-rails - 如何在 rails 视图中访问 render :layout 选项?
- .net - 使用 ADFS 注销 .net 核心项目
- c++ - 如何与 ActiveX exe 通信
- javascript - 护照本地策略不适用于 React