分配对象不能通过 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...