Sequelizeはinstance
の配列を返しています ユーザーのオブジェクト。 instance
オブジェクトには、それに基づいて行動できる便利なメソッドがいくつか付属しています。
フィールドをキーとしてデータのみを取得する場合は、get({plain: true})
を使用します 。たとえば、配列の最初のオブジェクトの場合users[0].get({plain: true})
。インスタンスを使い続けたい場合は、フィールドの名前でgetを使用できます。たとえば、users[0].get('nombre')
。
users[0].nombre
のように、ログに記録されていない場合でも、オブジェクトのプロパティに直接アクセスできる必要があります。 。
編集
これは元の質問とは関係ありませんが、別の回答に対するあなたのコメントです。非同期で物事を行っていることを確認してください。コードは次のようになります:
usuarioService.getAll = function (cb) {
Usuario.findAll().then(function (users) {
return cb(null, users);
}).catch(function(err) {
return cb(err);
});
}
次に、このメソッドを呼び出すときは、次のようにします。
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)
});
});
または
Sequelizeはpromiseを使用するため、promiseを使用してこれを行うのが最善の方法です。
usuarioService.getAll = function () {
return Usuario.findAll({ raw: true });
}
次に、このメソッドを呼び出すときは、次のようにします。
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
});
});