问题描述
我在制作对象的硬拷贝时遇到了麻烦。
let error = { ...err }
因此,当我以这种方式编写时,我收到了来自 ESLint 的警告“在 node.js 8.3.0 之前不支持 Rest/spread 属性”,并且没有分配给我的错误变量。
我确定我的节点版本比要求的版本高很多,但是我检查了一下 - 它是 ^14.1.0。
ESLint 版本 - ^6.6.0。
很多论坛说要配置ESLint才能让它工作,所以我先加了:
"engines": {
"node": ">=10.6.0"
}
然后:
"env": {
"es6": true
},"parserOptions": {
"ecmaVersion": 9,"sourceType": "module"
}
然而,它仍然不起作用。 err 对象已定义,当我尝试以其他方式实现它时,但在分配时 通过传播 - 它没有。
有人知道吗?
谢谢!
附言当 console.log(err.name) 我得到 'CastError'
,
当我在 let error = { ...err }
之后 console.log(error.name) 时,
我未定义。
P.P.S. error 从 err 继承了一些属性,但未定义属性名称。
P.P.P.S.片段是
module.exports = (err,req,res,next) => {
...
if(process.env.NODE_ENV === 'production') {
let error = { ...err }
if (error.name === 'CastError') {
error = handleCastErrorDB(error)
}
sendErrorProd(error,res)
}
}
然而,这并不能满足需要。
因此,当我将 if 语句条件更改为 err.name === 'CastError'
而不是 error.name === 'CastError'
时,一切正常。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)