Sails.js 如何使计算机出口响应返回JSON?
Sails返回机器出口请求()正文中HTTP响应的名称: 这将在响应的标题中提供错误响应:Sails.js 如何使计算机出口响应返回JSON?,sails.js,Sails.js,Sails返回机器出口请求()正文中HTTP响应的名称: 这将在响应的标题中提供错误响应: X-Exit →emailAlreadyInUse X-Exit-Description →The provided email address is already in use. return this.res.json('Hello World!'); 如何在正常的JSON响应中返回这些内容,使其与其他类似的响应保持一致: 在退出中,您可以包括一个响应类型,它允许您在sails中设置自定义响应
X-Exit →emailAlreadyInUse
X-Exit-Description →The provided email address is already in use.
return this.res.json('Hello World!');
如何在正常的JSON响应中返回这些内容,使其与其他类似的响应保持一致:
在退出中,您可以包括一个响应类型,它允许您在sails中设置自定义响应
exits: {
emailAlreadyInUse: {
statusCode: 409,
responseType: 'jsonResponse',
description: 'The provided email address is already in use.'
}
}
接下来,在api/responses中创建自定义响应,并按自己喜欢的方式进行设置
module.exports = function jsonResponse() {
let req = this.req;
let res = this.res;
sails.log.verbose('Ran custom response: res.jsonResponse()');
/* DO WHATEVER YOU WANT TO DO */
return res;
}
如果未找到解决方案,请直接在响应中发送文本:
X-Exit →emailAlreadyInUse
X-Exit-Description →The provided email address is already in use.
return this.res.json('Hello World!');
您可以在操作和catch块中使用try/catch块检查
error.code
,并返回所需的JSON响应。例如你有:
fn:异步函数({name,email,password},exits){
试一试{
const user=wait user.create({
名称
电子邮件
暗语
})
.fetch()
返回exits.success({success:true,user})
}捕获(错误){
如果(error.code=='E_UNIQUE'){
return exits.emailAlreadyInUse({success:false,消息:“提供的电子邮件已被switter用户使用”。})
}else if(error.name=='UsageError'){
return exits.badRequest({success:false,消息:'缺少或无效参数')
}
}
}
出口上的描述主要是针对响应头的。因此,您必须设置要发回的值,方法与设置成功出口的值相同
不要以为
否则如果块被触发,水线模型应该有一些验证,比如必需的:true
,isEmail:true
等等,并且您的操作输入不应该有必需的:true
,因为这将在您的操作代码运行之前进行验证,使Sails发送默认响应对于无效或缺少的参数。好的,我如何将描述从出口传递到自定义响应?您可以将其从req.headers移动到res.exit.message,例如,您的回答到底是什么意思?我有同样的问题,但我没有真正得到您的答案:)