退出自定义 Sails 1 和 Actions 2
Exits custom Sails 1 and Actions 2
如果我想 return 使用 Actions 2 在 sails 1 中输出带有状态代码和错误消息的错误消息。怎么办?
EX:
...
exits: {
notFound: {
description: 'not found',
responseType: 'notFound'
}
...
退出会怎样?例如:
状态代码 403 和消息 "Not allowed"
编辑:我尝试了天真的方法,它奏效了!您可以 return 将非成功退出作为函数并传递 json 作为参数。示例代码:
return exits.notfound({
error: true,
message: 'The *thing* could not be found in the database.'
});
原始答案:
您可以从操作 2 访问响应对象并将错误代码和消息放在那里。
在您的退出中,只需设置您想要的 statusCode,然后在操作本身中根据特定的退出相应地修改您的资源,然后再抛出它。
...
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 放入您的 action 2 exit 中,如下所示:
...
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);
}
...
如果我想 return 使用 Actions 2 在 sails 1 中输出带有状态代码和错误消息的错误消息。怎么办?
EX:
...
exits: {
notFound: {
description: 'not found',
responseType: 'notFound'
}
...
退出会怎样?例如: 状态代码 403 和消息 "Not allowed"
编辑:我尝试了天真的方法,它奏效了!您可以 return 将非成功退出作为函数并传递 json 作为参数。示例代码:
return exits.notfound({
error: true,
message: 'The *thing* could not be found in the database.'
});
原始答案:
您可以从操作 2 访问响应对象并将错误代码和消息放在那里。
在您的退出中,只需设置您想要的 statusCode,然后在操作本身中根据特定的退出相应地修改您的资源,然后再抛出它。
...
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 放入您的 action 2 exit 中,如下所示:
...
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);
}
...