【发布时间】:2017-01-19 09:51:15
【问题描述】:
fields 在以下代码中未定义,但发生错误时不会记录到控制台。在这种特定情况下,为什么,以及实际的处理方式是什么?
"Testing" 已记录到控制台(第 2 行),但未报告未定义的变量 fields(第 4 行)。错误在 API 响应(第 5 行)中返回,但没有相关信息,例如第 # 行、堆栈跟踪等。
我怎样才能将这样的错误记录到控制台,为什么不呢?
export function post(req, res) {
console.log("Testing")
User.create( getFields(req, ["name_first", "name_last"]) )
.then(user => respondJSON (res, fields, { status: 201 }))
.catch(err => respondError (res, err))
}
由于 catch 响应错误,我收到以下 API 响应:
{
"error": true,
"data": {
"message": "fields is not defined"
}
}
我正在使用 Babel 6 和 babel-node 通过 NPM 脚本运行我的代码。我也在使用摩根日志记录。删除中间件进行日志记录不会改变错误输出。
【问题讨论】:
-
promise 中发生的错误不会传播到控制台吗?例如,如果我只是在 Chrome 控制台中输入
console.log(x),它会给我Uncaught ReferenceError: x is not defined和堆栈跟踪。
标签: javascript node.js express ecmascript-6