【问题标题】:Cant access values in my EXPRESS / NodeJs response error [String: 'Error: Request returned error code: 404无法访问我的 EXPRESS / NodeJs 响应错误中的值 [字符串:'错误:请求返回错误代码:404
【发布时间】:2018-05-06 00:14:46
【问题描述】:

我正在尝试访问我的快速响应错误中的值。当我 console.log 这样的错误时......

app.use(function(err, req, res, next){
    console.log(err)
});

控制台如下所示

[String: 'Error: Request returned error code: 404 and body: {"status":404,"title":"No option(s) were found with this query.","type":"https://developer.bigcommerce.com/api#api-status-codes"}']

例如;我如何访问err.title,以便将其发送给客户。

参考这个问题了解更多Parse Error response in Express NodeJS app

【问题讨论】:

  • 答案是什么

标签: javascript node.js express


【解决方案1】:

如果我没记错的话,express使用standard中定义的通用错误对象,并且只有三个属性:

Error.prototype.constructor
指定创建一个 实例的原型。
Error.prototype.message
错误信息。
Error.prototype.name
错误名称。

某些库(例如 mongoose)使用自定义错误对象,因此您可以访问更多错误详细信息(和属性),如果是这种情况,您可以尝试在该库的官方文档,并查看错误对象中是否有更多详细信息。在这种情况下,我认为您不会使用 express 提供的 err 对象,而是使用库方法提供的 err 会引发错误,有点像:

...
app.use((err, req, res, next)=>{
 library.method((err1, data)=>{
  console.log(err1);// use this error object
 })
})
... 

【讨论】:

    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 2019-07-28
    • 2013-05-13
    • 2013-06-09
    • 2019-10-18
    • 1970-01-01
    • 2020-12-06
    • 2012-07-16
    相关资源
    最近更新 更多