node.js - 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
是空对象{}
知道为什么没有诸如“在未定义时调用哈希”之类的错误吗?
解决方案
您只能将消息发送给客户端:
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);
推荐阅读
- c# - (datatype, datatype) x = (value, value) 在 C# 中是什么意思?x 的实际数据类型是什么?
- android - Rxjava - 用批处理迭代列表
- batch-file - 批处理 - 将一行中的每个单词提取到降价链接
- c++ - Windows 对话框打不开
- java - Java 三角形以星号打印,以起始编号开头
- android - 在android studio中这个错误“build_e78zp1j4o0zl1p0yedk066716$_run_closure1@16415a4c”的解决方案?
- python-3.x - 如何更新 anaconda 中的 imutils?
- hbase - 由于 Zookeeper UnknownHostException,HBase HMaster 无法启动
- java - 如何在 Angular/SpringBoot 应用程序中动态生成密码并通过电子邮件将其发送给用户
- sql-server - 获取或存储图像文件 VB.net