Sequelize vrací pole instance
objektů v uživatelích. instance
objekt má k sobě připojenou řadu metod pohodlí, které vám umožňují s ním jednat.
Pokud chcete získat pouze data s vašimi poli jako klíči, použijte get({plain: true})
. Například pro první objekt v poli users[0].get({plain: true})
. Pokud chcete instance nadále používat, stačí použít get s názvem vašeho pole. Například users[0].get('nombre')
.
Měli byste mít také možnost přistupovat k vlastnostem přímo na objektu, i když nejsou protokolovány, například users[0].nombre
.
Upravit
To nesouvisí s původní otázkou, ale s vaším komentářem k jiné odpovědi. Ujistěte se, že děláte věci asynchronně. Kód by měl být:
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
Potom při volání této metody uděláte něco jako:
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)
});
});
nebo
Vzhledem k tomu, že Sequelize používá sliby, nejlepším způsobem by bylo udělat to pomocí slibů.
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
Potom při volání této metody uděláte něco jako:
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
});
});