小编Kun*_*nal的帖子

Promise 中的错误未在 NodeJS/Express/Mongoose 中的响应对象中发送任何错误

我正在尝试将旧的 mongoose Promise 代码转换为 Native ES6 Promise。我收到了 catch 中抛出的所有错误,我可以将其记录在控制台中,但是当我尝试将其传递给响应对象时,我得到空对象。以下是我的代码

module.exports.login = function(req, res) {

    var userPromise = User.findOne({email:req.body.email}).exec();

    userPromise.then(function(user) {
        if(!user){
            throw new Error("step 1 failed!");
        }
    })
    .then(function(user) {
        if(!user.comparePassword(req.body.password)){
            throw new Error("step 2 failed!");
        }else {
            return res.json({token: jwt.sign({email:user.email, name:user.name, _id: user._id}, 'SOMETOKEN')});

        }
    })
    .catch(function(err) {
        console.log('Error: '+err);
        return res.status(401).send(err);       

    });
};
Run Code Online (Sandbox Code Playgroud)

请让我知道我是否走在正确的道路上或者我在这里犯了一些错误。提前致谢。

mongoose node.js express es6-promise

2
推荐指数
1
解决办法
1530
查看次数

标签 统计

es6-promise ×1

express ×1

mongoose ×1

node.js ×1