gpt4 book ai didi

sails.js - 如何将每个 API 响应包装到 SailsJS 中的标准回复对象中?

转载 作者:行者123 更新时间:2023-12-04 11:52:19 25 4
gpt4 key购买 nike

我是 Sails 的新手,我正在尝试找出为每个 API 响应返回标准对象的最佳/正确方法。

我们前端需要的容器是:

{
"success": true/false,
"session": true/false,
"errors": [],
"payload": []
}

目前,我正在像这个例子一样覆盖每个 Controller 中的蓝图 Action (这看起来非常非常错误):
   find : function( req, res ){

var id = req.param( 'id' );

Foo.findOne( { id : id } ).exec( function( err, aFoo ){

res.json(
AppSvc.jsonReply(
req,
[],
aFoo
), 200
);
});

}

在 AppSvc.js 中:
  jsonReply : function( req, errors, data ){

return {
success : ( errors && errors.length ? false : true ),
session : ( req.session.authenticated === true ),
errors : ( errors && errors.length ? errors : [] ),
payload : ( data ? data : [] )
};

}

此外,我不得不修改每个 res.json()每个默认响应(badRequest、notFound 等)的方法。再次,这感觉非常错误。

那么,如何将所有 API 响应正确地汇集到标准容器中?

最佳答案

Sails 自定义响应对此非常有用。

如果您查看蓝图代码,您会看到每个完成后都调用 res.ok:https://github.com/balderdashy/sails/blob/master/lib/hooks/blueprints/actions/find.js#L63

您可以将自己的文件 - ok.js - 添加到 api/responses/- 这将覆盖默认的内置处理程序。

https://github.com/balderdashy/sails/blob/master/lib/hooks/responses/defaults/ok.js <- 只需复制并粘贴即可开始,并根据需要进行调整。

关于sails.js - 如何将每个 API 响应包装到 SailsJS 中的标准回复对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23528352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com