在server.js中,我有一条从数据库中删除特定报价的途径。
//DELETE
app.delete('/quotes/:QUID', async(req, res) => {
console.log(`DELETE ROUTE GOT HIT WITH ${req.params.QUID}`)
let query = {
"UID": req.params.QUID
}
const cursor = await collection.findOne(query, (err, result) => {
console.log(`Error is ${err}`)
console.log(` Result is ${result}`)
})
await collection.deleteOne({"UID": req.params.QUID})
res.send(cursor);
})
当路线被击中时,我发送报价ID以在路线中删除。下面是数据库中数据的结构。
_id: ObjectId("5f531a3ce52e9f3bc6c3b21c"),
UID: 996779
name: "Neel Patel"
quote: "Yolo"
但是,一旦路由被命中,即使数据库中存在具有该特定UID的文档,它也会返回null。下面是console.log()输出。
Listening on port 3000
Connection successful!
DELETE ROUTE GOT HIT WITH 996779
Error is null
Result is null
我不确定是什么问题。首先,我认为这必须与功能保持异步,因此我在(req,res)函数之前添加了async,但问题仍然存在。
答案 0 :(得分:1)
问题出在我的查询中。路由中的QUID被读取为字符串,但我需要将其作为Integer。所以我如下修改了查询:
let query = {
"UID": parseInt(req.params.QUID)
}