首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >错误:无法在发送后设置标头-正确处理express控制器中的错误

错误:无法在发送后设置标头-正确处理express控制器中的错误
EN

Stack Overflow用户
提问于 2019-06-03 00:28:02
回答 5查看 63关注 0票数 0

我对下面的代码有一个问题。当命中错误时,将命中if语句并调用res.send。但是,代码随后继续执行下面的res.json调用。这会导致报头错误。

使用else语句是唯一正确的方法吗?我假设调用res.send会中断函数。

代码语言:javascript
复制
exports.new = function (req, res) {
    let team = new Team();
    team.name = req.body.name;
    team.description = req.body.description;
    team.members = [];

    // save the team and check for errors
    team.save(function (err) {
        if (err) {
            res.status(400).send(err);
        }

        res.status(200).json({
            message: 'Team successfully created',
            team: team
        });
    });
};

我还尝试使用req,res,next作为函数参数,并使用以下方法:

代码语言:javascript
复制
if (err) {
    res.status(400);
    next(err);
}

res.status(200).json({
    message: 'Team successfully created',
    team: team
});

虽然这不会抛出错误,但它仍然继续调用最终的res.status.json (结果是200,而不是400 )

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56416862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档