当用户尝试将密码设置为小于8个字符的长度时,我想回复406。我正在模型的beforeCreate
函数中进行此验证。但是Sails用500和Internal Server Error
消息进行响应。无论如何都要访问响应对象并回复我自己的响应?
module.exports = {
beforeCreate: function (attrs, next) {
if (attrs.password.length < PASS_MIN_LENGTH) {
return next({status: 406, message: "Password must be at least 8 characters"});
}
next();
},
... // Model definition below
};
答案 0 :(得分:0)
这取决于你使用的蓝图吗?如果出现错误,您可以将响应设置为调用模型的控制器中的任何内容。如果您使用蓝图,则需要对其进行编辑以满足您的需求。 (在/ api中创建一个蓝图文件夹,并在那里复制风帆蓝图,确保小写的findOne.js,你可以根据需要进行修改)
但你应该知道有验证的地方。
对于此示例,您可以在模型上放置minLength属性。
https://github.com/balderdashy/waterline-docs/blob/master/models.md#validations
或者您也可以创建自定义验证。如果您使用beforeCreate回调因为PASS_MIN_LENGTH是您想要使用的变量,那么您也可以在验证中使用它。