Sails.js用户模型没有删除密码

Kev*_*ker 5 json sails.js

我试图从JSON序列化用户模型中删除密码.

由于某种原因,我的控制器返回res.json({user: myUser});正在返回包括密码在内的完整用户.以下是我的用户模型.思考?

# models/User.js
var User = {
  attributes: {
    username: 'string',
    password: 'string'
  },

  // Override toJSON method to remove password from API
  toJSON: function() {
    var obj = this.toObject();
    // BELOW NOT WORKING
    delete obj.password;
    return obj;
  }
};
module.exports = User;
Run Code Online (Sandbox Code Playgroud)

sgr*_*454 18

您正在添加toJSON类方法(在attributes对象之外); 它需要是一个实例方法:

# models/User.js
var User = {
  attributes: {
    username: 'string',
    password: 'string',

    // Override toJSON method to remove password from API
    toJSON: function() {
      var obj = this.toObject();
      delete obj.password;
      return obj;
    }

  }

};
module.exports = User;
Run Code Online (Sandbox Code Playgroud)

这会将toJSON方法添加到每个实例中User,并且在执行此类操作时将按预期工作res.json().