Sequelize returnerer en matrix af instance
objekter i brugere. En instance
objektet har en række bekvemmelighedsmetoder knyttet til det, som giver dig mulighed for at handle på det.
Hvis du kun vil have dataene med dine felter som nøgler, skal du bruge get({plain: true})
. For eksempel for det første objekt i arrayet users[0].get({plain: true})
. Hvis du vil blive ved med at bruge forekomsterne, kan du bare bruge get med navnet på dit felt. For eksempel users[0].get('nombre')
.
Du bør også kunne få adgang til egenskaberne direkte på objektet, selvom de ikke bliver logget, såsom users[0].nombre
.
Rediger
Dette er ikke relateret til det oprindelige spørgsmål, men din kommentar til et andet svar. Sørg for, at du gør tingene asynkront. Koden skal være:
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
Så når du kalder denne metode, ville du gøre noget som:
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)
});
});
eller
Da Sequelize bruger løfter, ville det være den bedste måde at gøre dette ved at bruge løfter.
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
Så når du kalder denne metode, ville du gøre noget som:
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
});
});