Sequelize zwraca tablicę instance
obiekty w użytkownikach. instance
obiekt ma wiele wygodnych metod, które pozwalają na działanie na nim.
Jeśli chcesz uzyskać tylko dane z polami jako kluczami, użyj get({plain: true})
. Na przykład dla pierwszego obiektu w tablicy users[0].get({plain: true})
. Jeśli chcesz nadal korzystać z instancji, możesz po prostu użyć get z nazwą swojego pola. Na przykład users[0].get('nombre')
.
Powinieneś także mieć dostęp do właściwości bezpośrednio w obiekcie, nawet jeśli nie są one rejestrowane, na przykład users[0].nombre
.
Edytuj
Nie jest to związane z pierwotnym pytaniem, ale z twoim komentarzem do innej odpowiedzi. Upewnij się, że robisz rzeczy asynchronicznie. Kod powinien wyglądać następująco:
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
Następnie, wywołując tę metodę, zrobiłbyś coś takiego:
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)
});
});
lub
Ponieważ Sequelize używa obietnic, najlepszym sposobem byłoby zrobienie tego za pomocą obietnic.
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
Następnie, wywołując tę metodę, zrobiłbyś coś takiego:
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
});
});