如何使用助手的特定退出来自定义控制器的响应?

时间:2019-06-24 08:45:58

标签: javascript sails.js helper

我正在使用Sails.js v1.2.2,并使用单个文件而不是操作2来组织控制器。此外,我在控制器中使用了帮助程序。

现在,当助手触发成功以外的其他退出时,控制器将自动以特定格式响应,例如

{     “原因”:{         “ name”:“ Exception”,         “ code”:“ ParameterError”,         “ exit”:“ ParameterError”,         “ traceRef”:{},         “生的”: {             “ msg”:“我的自定义消息”         }     },     “ isOperational”:是的,     “ code”:“ ParameterError”,     “ exit”:“ ParameterError”,     “ traceRef”:{},     “生的”: {         “ msg”:“我的自定义消息”     } }

当助手退出失败时,如何自定义响应数据?

我已尝试在帮助程序文件中自定义退出,但不起作用。

1 个答案:

答案 0 :(得分:0)

U可以使用Sails生成器。 sails generate response myCustomHandler。检查docs以获得自定义响应。

然后尝试像示例中那样捕获辅助程序:

try {
  await sails.helpers.test()
    .intercept({ code: 'test' }, ()=>{ return new Error('err1') })
} catch (e) {

  if (e.message === 'err1') {
    return res.badRequest('Test Bad request')
  } else if (e.code === 'ParameterError') {
    return res.serverError('Parameter Error Message in server error')
  } else {
    return res.myCustomHandler('Test Custom handler')
  }

这是一个拦截示例,您可以使用它来做更多的自定义操作。如果您不需要它,请忽略它。如果您使用action2,则返回此语句。 return this.res.myCustomHandler('Some error')
在myCustomHandler.js文件中,您可以格式化错误。选中此docs