Sequelize - 不要使用JSON响应返回密码

时间:2017-11-10 15:50:27

标签: json express sequelize.js

我将 Sequelize 4.22.6 ExpressJS 一起使用。

想隐藏密码以及其他字段,当我创建一个用户:

models.User.create({
    firstName: 'Maxence',
    lastName: 'Rose',
    email: 'email@domain.tld',
    password: 'azeaze',
}).then((result) => {
    res.json(result.toJSON()); // I don't want return "password" field
});

我试过这个:Sequelize: don't return password&这Sequelize: Don't return password on Create

instanceMethods: {
    toJSON: () => {
        console.log("Console log here...");
    }
}

但是,我的印象是 instanceMethods()方法未被调用。

我在 instanceMethods()中添加了 console.log()功能,我无法在控制台中看到此日志...

1 个答案:

答案 0 :(得分:0)

之前我有同样的问题与续集。我曾经做过类似的事情:

您的models/user.js文件:

module.exports = function(sequelize, DataTypes) {
 const User = sequelize.define(
 'user',
 {
   // your columns here
 });

 User.prototype.toJSON = function(){
   console.log("Console log here...");
 };    

 return User;
});

然后,您可以在创建的用户对象上调用实例方法。