如果我想使用动作2在帆1中返回带有状态代码和错误消息的错误输出,怎么办?
EX:
...
exits: {
notFound: {
description: 'not found',
responseType: 'notFound'
}
...
如何退出?例如: 状态代码为403和消息“不允许”
答案 0 :(得分:1)
编辑:我尝试过幼稚的方法,并且有效!您可以将非成功退出作为函数返回,并传递json作为参数。示例代码:
return exits.notfound({
error: true,
message: 'The *thing* could not be found in the database.'
});
原始答案:
您可以从操作2访问响应对象,并在其中放置错误代码和消息。
在退出时,只需设置所需的statusCode即可,而在操作本身中,可以在抛出该异常之前根据特定的退出情况相应地修改res。
...
exits: {
notFound: {
statusCode: 403,
description: 'not found'
}
...
在您的行动中:
...
if(!userRecord) {
this.res.message =
{
exit: 'notFound',
message: 'The *thing* could not be found in the database.'
};
throw 'notFound';
}
...
您可以设置自定义响应来执行相同的操作。像这样将responseType放入操作2出口中:
...
exits: {
notFound: {
responseType: 'notfound',
description: 'not found'
}
...
然后在api / responses中创建您的自定义响应,并在其中设置状态代码和消息。
...
module.exports = function notfound() {
let req = this.req;
let res = this.res;
sails.log.verbose('Ran custom response: res.notfound()');
res.message =
{
exit: 'notFound',
message: 'The *thing* could not be found in the database.'
};
return res.status(403);
}
...