Sequelize instance
. की एक सरणी लौटा रहा है उपयोगकर्ताओं में वस्तुओं। एक instance
ऑब्जेक्ट में कई सुविधा विधियां जुड़ी हुई हैं जो आपको उस पर कार्य करने की अनुमति देती हैं।
यदि आप अपने फ़ील्ड के साथ केवल डेटा कुंजी के रूप में प्राप्त करना चाहते हैं, तो get({plain: true})
का उपयोग करें . उदाहरण के लिए, सरणी में पहली वस्तु के लिए users[0].get({plain: true})
. यदि आप उदाहरणों का उपयोग करना जारी रखना चाहते हैं, तो आप बस अपने क्षेत्र के नाम के साथ get का उपयोग कर सकते हैं। उदाहरण के लिए, users[0].get('nombre')
।
आपको ऑब्जेक्ट पर सीधे गुणों तक पहुंचने में सक्षम होना चाहिए, भले ही वे लॉग नहीं किए जा रहे हों, जैसे कि users[0].nombre
।
संपादित करें
यह मूल प्रश्न से संबंधित नहीं है, बल्कि किसी अन्य उत्तर पर आपकी टिप्पणी है। सुनिश्चित करें कि आप चीजों को अतुल्यकालिक रूप से कर रहे हैं। कोड होना चाहिए:
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
फिर इस विधि को कॉल करते समय आप कुछ ऐसा करेंगे:
router.get('your_path', function(req, res, next) {
serv.getAll(function(err, users) {
if (err) {
// your err handling code
}
// users is now a valid js array
// could send it in res.json(users)
});
});
या
चूँकि Sequelize वादों का उपयोग करता है, वादों का उपयोग करके ऐसा करना सबसे अच्छा तरीका होगा।
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
फिर इस विधि को कॉल करते समय आप कुछ ऐसा करेंगे:
router.get('your_path', function(req, res, next) {
serv.getAll().then(function(users) {
res.render('usuarios/index',{
users: users
})
}).catch(function(err) {
// your error handling code here
});
});