मैं सेल के लिए नया हूं और मैं प्रत्येक एपीआई प्रतिक्रिया के लिए मानक ऑब्जेक्ट लौटने के लिए सबसे अच्छी/उचित विधि का पता लगाने की कोशिश कर रहा हूं।मैं प्रत्येक एपीआई प्रतिक्रिया को SailsJS में मानक उत्तर ऑब्जेक्ट में कैसे लपेट सकता हूं?
कंटेनर हमारे सामने के अंत की आवश्यकता है:
find : function(req, res){
var id = req.param('id');
Foo.findOne({ id : id }).exec(function(err, aFoo){
res.json(
AppSvc.jsonReply(
req,
[],
aFoo
), 200
);
});
}
:
{
"success": true/false,
"session": true/false,
"errors": [],
"payload": []
}
वर्तमान में, मैं इस उदाहरण की तरह प्रत्येक नियंत्रक में खाका क्रिया (सिर्फ इसलिए बहुत, बहुत गलत लगता है) को अधिलेखित कर रहा हूँ
और में 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 : [])
};
}
साथ ही, मैं आधुनिकीकरण के लिए मिला है ify प्रत्येक res.json()
प्रत्येक डिफ़ॉल्ट प्रतिक्रिया के लिए विधि (badRequest, notFound, आदि)। फिर, यह बहुत गलत लगता है।
तो, मैं एक मानक कंटेनर में सभी एपीआई प्रतिक्रियाओं को सही ढंग से कैसे फनल कर सकता हूं?
आप 'एपीआई/ब्लूप्रिंट/find.js' फ़ाइल का उपयोग करके वैश्विक ब्लूप्रिंट 'ढूंढ' विधि को ओवरराइड भी कर सकते हैं! – sgress454
यह सही था। मैं अपने 'AppSvc.jsonReply' कंटेनर का उपयोग करने के लिए सभी api/प्रतिक्रियाओं/* फ़ाइलों में 'res.json()' कॉल को ओवरराइट करता हूं। मेरे नियंत्रकों के भीतर मैं अब सामान्य 'res.ok (डेटा) कर सकता हूं; ',' res.notFound(); ', आदि धन्यवाद रोब! – NotJustClarkKent