Sequelize gibt ein Array von instance
zurück Objekte in Benutzern. Eine instance
-Objekt hat eine Reihe praktischer Methoden, mit denen Sie darauf reagieren können.
Wenn Sie nur die Daten mit Ihren Feldern als Schlüssel erhalten möchten, verwenden Sie get({plain: true})
. Zum Beispiel für das erste Objekt im Array users[0].get({plain: true})
. Wenn Sie die Instanzen weiterhin verwenden möchten, können Sie einfach get mit dem Namen Ihres Felds verwenden. Beispiel:users[0].get('nombre')
.
Sie sollten auch direkt auf die Eigenschaften des Objekts zugreifen können, selbst wenn sie nicht protokolliert werden, wie z. B. users[0].nombre
.
Bearbeiten
Dies bezieht sich nicht auf die ursprüngliche Frage, sondern auf Ihren Kommentar zu einer anderen Antwort. Stellen Sie sicher, dass Sie die Dinge asynchron ausführen. Der Code sollte lauten:
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
Dann würden Sie beim Aufrufen dieser Methode so etwas tun:
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)
});
});
oder
Da Sequelize Promises verwendet, wäre die Verwendung von Promises der beste Weg.
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
Dann würden Sie beim Aufrufen dieser Methode so etwas tun:
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
});
});