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

标签 javascript mongodb rest api mongoose

我目前正在使用 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/

相关文章:

JavaScript ES6 : Split array into rest and last with destructuring

Mongodb 按查询和组查找

spring - 如何在Spring的REST Api中的rest调用中发送密码字符串?

java - 查找 spring-data-mongo MappingContext 内存泄漏

javascript - Ember 数据:如何正确发布

java - 如何使用 Jersey 在POST请求正文中发送2个PoJos?

javascript - 将 JSON 对象列表从 javascript 发送到 MVC 操作

javascript - 是否可以根据Reactjs中实际布局的html来操作组件?

javascript - 谷歌地图 API 获取 lat 和 lng 并替换标记?

java - 从 LinkedHashMap 转换为 Json 字符串