首页 > 解决方案 > Nodejs 并不总是显示错误

问题描述

我开始学习js和nodejs。我有一个问题需要我很长时间才能解决。

我正在使用 bcrypt 库,并且在 require statemant 上打了一个错字:

const bcrpyt = require('bcryptjs');

然后在我使用的预保存模式中:

bcrypt.hash(user.password, 10, (err, hash) => {
    user.password = hash;
    next();
});

bcrypt也是_undefined

在我的路线上,我有:

user.save()
    .then(/*some action*/)
    .catch(e => res.status(400).send(e));

所以在提出请求后,我得到了状态 400 但是e是空对象{}

知道为什么没有诸如“在未定义时调用哈希”之类的错误吗?

标签: node.jssyntax-errorbcrypt

解决方案


您只能将消息发送给客户端:

res.status(400).send(e.message)

我不知道您使用的是 express.js 还是普通的 node.js,但如果您想在客户端查看这些错误,您可以将整个服务器请求代码包装在一个 try catch 块中,如下所示(使用 vanilla nodejs):

http.createServer(function(request, response) {
    try{
        response.writeContinue(undefinedVariable);
    }catch (error) {
        response.status(400).end(error.message);
    }
}).listen(port);

推荐阅读