json - NodeJs Sequelize 删除 toJSON 方法中的属性会导致从模型本身中删除值

标签 json node.js sequelize.js

我有一个 SequelizeInstance 对象,当我将其更改为 JSON 时,我需要省略一些值,但每当我调用 delete 时,它也会从 SequelizeInstance 中删除该值。下面是代码:

instanceMethods: {
        toJSON: function() {
            var values = this.get();
            delete values.password;
            delete values.salt;
            return values;
        }
    }

我面临的问题是,每当我调用 toJSON() 时,SequelizeInstance 都会删除密码和盐的值。我可以做的一个可能的解决方案是对对象进行浅拷贝并返回它。我想知道是否还有其他更好的方法来解决这个问题。

最佳答案

直接来自 Sequelize issue

password: {
    // ...
    get() {
        return () => this.getDataValue('password');
    }
}

作者引言

Returning a function and not a value from user.password. The pros part of it is the explicit need for user.password() call to retrieve the pass. The pass will be automatically evaded by ordinary serialization too

关于json - NodeJs Sequelize 删除 toJSON 方法中的属性会导致从模型本身中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282062/

相关文章:

node.js - 无法连接到 *name_server* - getaddrinfo ENOTFOUND

javascript - 在哪里清理数据客户端或服务器端

javascript - 在 Node.js 中高级编写文件

node.js - 如何在 NodeJs 中使用 Canvas 加载 GIF 图像?

javascript - Sequelize 删除钩子(Hook)?

mysql - Docker Compose Sql DB 图像连接错误

php - 获取解码的 JSON 数据时不断收到 "Array"?

java - 使用 gson 将嵌套的 Java 对象与 json 相互转换

无法从子进程的标准输出中获取任何内容

node.js - html-docs.js 生成的文档为空