更改蓝图操作的响应 (Sails.JS)

Change response for a blueprint action (Sails.JS)

我有一个具有三个属性的 User 模型:nameemailpassword 我有这个模型的蓝图,这意味着为 findfindOnecreate...

创建动作

我的问题是 POST/api/users 上输入一些值会创建用户,但密码包含在响应中。在将响应发送到浏览器之前是否有任何 way/hack 可以更改响应,或者我应该重写 create 操作吗?

使用toJSON方法

// api/models/User.js
module.exports = {
  attributes: {
    username: 'string',
    password: 'string',

    // Override the default toJSON method

    toJSON: function() {
      var obj = this.toObject();
      delete obj.password;
      return obj;
    }
  }
}

http://sailsjs.org/#!/documentation/reference/waterline/records/toJSON.html

更新

您可以将 属性 protected: true 放在 password 属性上,它会做同样的事情:

// api/models/User.js
module.exports = {
  attributes: {
    username: 'string',
    password: { type: 'string', protected: true }
  }
}

http://sailsjs.org/#!/documentation/concepts/ORM/Validations.html