Sequelize renvoie un tableau de instance
objets dans les utilisateurs. Une instance
objet a un certain nombre de méthodes pratiques qui vous permettent d'agir dessus.
Si vous souhaitez obtenir uniquement les données avec vos champs comme clés, utilisez get({plain: true})
. Par exemple, pour le premier objet du tableau users[0].get({plain: true})
. Si vous souhaitez continuer à utiliser les instances, vous pouvez simplement utiliser get avec le nom de votre champ. Par exemple, users[0].get('nombre')
.
Vous devriez également pouvoir accéder aux propriétés directement sur l'objet, même si elles ne sont pas enregistrées, telles que users[0].nombre
.
Modifier
Ce n'est pas lié à la question d'origine, mais à votre commentaire sur une autre réponse. Assurez-vous que vous faites les choses de manière asynchrone. Le code devrait être :
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
Ensuite, lors de l'appel de cette méthode, vous feriez quelque chose comme :
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)
});
});
ou
Étant donné que Sequelize utilise des promesses, le faire en utilisant des promesses serait le meilleur moyen.
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
Ensuite, lors de l'appel de cette méthode, vous feriez quelque chose comme :
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
});
});