gpt4 book ai didi

javascript - 放置、修补和删除不会返回错误

转载 作者:行者123 更新时间:2023-11-28 03:16:42 27 4
gpt4 key购买 nike

我目前正在使用 JS 开发 REST API,但遇到以下问题:该代码有效,但如果我尝试删除、放置或修补不存在的条目,它不会返回错误,但会打印成功消息。这是为什么?获取路由完美运行。

app.route("/verbrauch/:parameterVariable")

.get((req, res) => {
Verbrauch.findOne({
bezeichnung: req.params.parameterVariable
}, (err, gefundeneEintraege) => {
if (gefundeneEintraege) {
res.send(gefundeneEintraege);
} else {
res.send("Success");
}
});
})


.put((req, res) => {
Verbrauch.update({
bezeichnung: req.params.parameterVariable
}, {
bezeichnung: req.body.bezeichnung,
stueckzahl: req.body.stueckzahl,
monat: req.body.monat,
jahr: req.body.jahr,
}, {
overwrite: true
},
err => {
if (!err) {
res.send("Success");
} else {
res.send(err);
}
}
);
})


.patch((req, res) => {
Verbrauch.update({
bezeichnung: req.params.parameterVariable
}, {
$set: req.body
},
err => {
if (!err) {
res.send("Success")
} else {
res.send(err);
}
}
);
})

.delete((req, res) => {
Verbrauch.deleteOne({
bezeichnung: req.params.parameterVariable
},
err => {
if (!err) {
res.send("Success");
} else {
res.send(err);
}
}
);
});

最佳答案

造成这种情况的原因有多种。

首先,如果您尝试更新数据库中不存在的内容。它不会返回 err,并且会在结果中返回 null

其次,你不应该写res.send(err)。因为,如果你只写 res.send 那么 ExpressJs 会添加默认状态代码 200,这是成功的指示。 你可以给

res.status(400).send(err)

res.status(500).send(err)

关于javascript - 放置、修补和删除不会返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59577610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com