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
});
});