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

时间:2015-02-26 08:15:45

标签: sails.js

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

创建了操作

我的问题是POST /api/users上的某些值会创建用户,但密码会包含在响应中。在将响应发送到浏览器之前是否有任何改变响应的方式/ hack,还是应该重写create动作?

1 个答案:

答案 0 :(得分:1)

使用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