我在我的Web应用程序中使用Sails js。我必须更改beforeCreate的默认行为。首先看一下代码:
beforeCreate: function(values, next) {
//ParamsCheck is my service and 'check' is method which will validate the
//parameters and if any invalid parameter then error will be thrown, otherwise
//no error will be thrown
ParamsCheck.check(values)
.then(() => {
// All Params are valid and no error
next();
})
.catch((err) => {
//Some errors in params, and error is thrown
next(err);
});
}
因此,问题是如果有任何错误,则下一个方法将自动重定向到错误代码为500的serverError,而我想使用自定义响应(例如badRequest,错误代码400)将其重定向。如何实现呢?
最佳答案
您正在beforeCreate
中执行某种验证。但是,这不是验证的正确位置。
更好的方法是使用http://sailsjs.org/documentation/concepts/models-and-orm/validations#?custom-validation-rules中所述的自定义验证规则,或创建一个策略来处理验证。
我喜欢使用政策:
module.exports = function(req, res, next) {
var values = req.body;
ParamsCheck.check(values).then(() => {
return next();
}).catch((err) => {
return res.send(422); // entity could not be processed
});
};
关于node.js - 航行js beforeCreate next()回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39911458/