我有一个User
模型,其中包含三个属性:name
,email
和password
我有这个模型的蓝图,这意味着为find
,findOne
,create
,...
我的问题是POST
/api/users
上的某些值会创建用户,但密码会包含在响应中。在将响应发送到浏览器之前是否有任何改变响应的方式/ hack,还是应该重写create
动作?
答案 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