如何解决分配对象不能通过 Rest/Spread 运算符工作
我在制作对象的硬拷贝时遇到了麻烦。
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 举报,一经查实,本站将立刻删除。