[英]why does my express route work for "/" but not "/:id"?
我正在解决为什么我的路线不起作用的问题,但我遇到了这个问题。
在我的 ./routes/jobs.js 中,
router.delete("/:id", (req, res) => {
Job.findByIdAndDelete(req.params.id, (err, job) => {
if (!err) {
res.json({ msg: "job deleted"});
} else {
console.log(err);
}
});
});
当我在邮递员上测试时,删除 - http://localhost:5000/dashboard/60b9405e1ea
将仅返回 id 60b9405e1ea
而不会删除数据库作业。
我将路线更改为“/”并对其进行了测试。 在邮递员中使用http://localhost:5000/dashboard
。
router.delete("/", (req, res) => {
Job.findByIdAndDelete(req.params.id, (err, job) => {
if (!err) {
res.json({ msg: "job deleted"});
} else {
console.log(err);
}
});
它使用{msg: "job deleted"}
执行删除请求。 (显然没有删除数据库作业,因为没有给出 id)。
请记住我正在使用的 server.js,
app.use("/dashboard", require("./routes/jobs"));
关于为什么 /:id 没有被执行的任何帮助将不胜感激
当您在控制台中获取 id 时,这是您进行的查询的问题。 尝试其中任何一个,
Model.remove({ _id: req.body.id }, function(err) {
if (!err) {
message.type = 'notification!';
}
else {
message.type = 'error';
}
});
或者
Model.findOneAndRemove({id: req.params.id}, function(err){
});
或传统方法:
Model.findById(id, function (err, doc) {
if (err) {
// handle error
}
doc.remove(callback); //Removes the document
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.