Wie kann ich jede API-Antwort in ein Standardantwortobjekt in SailsJS einbinden?
Ich bin neu in Sails und versuche, die beste / richtige Methode für die Rückgabe eines Standardobjekts für jede API-Antwort zu finden.
Der Container, den unser Frontend benötigt, ist:
{
"success": true/false,
"session": true/false,
"errors": [],
"payload": []
}
Momentan überschreibe ich die Blueprint-Aktionen in jedem Controller wie in diesem Beispiel (was einfach so sehr, sehr falsch zu sein scheint):
find : function( req, res ){
var id = req.param( 'id' );
Foo.findOne( { id : id } ).exec( function( err, aFoo ){
res.json(
AppSvc.jsonReply(
req,
[],
aFoo
), 200
);
});
}
Und in 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 : [] )
};
}
Außerdem musste ich jedes ändernres.json()
Methode für jede Standardantwort (badRequest, notFound, etc). Auch dies fühlt sich so falsch an.
Wie kann ich alle API-Antworten ordnungsgemäß in einen Standardcontainer übertragen?