微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

分配对象不能通过 Rest/Spread 运算符工作

如何解决分配对象不能通过 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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?