Sequelize restituisce un array di instance
oggetti negli utenti. Un'instance
l'oggetto ha una serie di metodi pratici collegati che ti consentono di agire su di esso.
Se vuoi ottenere solo i dati con i tuoi campi come chiavi, usa get({plain: true})
. Ad esempio, per il primo oggetto nell'array users[0].get({plain: true})
. Se vuoi continuare a usare le istanze, puoi semplicemente usare get con il nome del tuo campo. Ad esempio, users[0].get('nombre')
.
Dovresti anche essere in grado di accedere alle proprietà direttamente sull'oggetto, anche se non sono state registrate, come users[0].nombre
.
Modifica
Questo non è correlato alla domanda originale, ma al tuo commento su un'altra risposta. Assicurati di fare le cose in modo asincrono. Il codice dovrebbe essere:
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
Quindi quando chiami questo metodo dovresti fare qualcosa del tipo:
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)
});
});
o
Dal momento che Sequelize usa le promesse, farlo usando le promesse sarebbe il modo migliore.
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
Quindi quando chiami questo metodo dovresti fare qualcosa del tipo:
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
});
});