Sequelize的findAll();我不明白
findAll() from Sequelize doesn't get
我在MySQL中使用Sequelize。
当我运行此代码时:
usuarioService.getAll = function () {
Usuario.findAll().then(function (users) {
//return users;
console.dir(users);
});
}
我没有得到用户,而是得到:
https://i.stack.imgur.com/uLhmN.png
请帮帮我!我快疯了!
感谢
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
});
});
您正在返回一个用户。
您看到的第一个部分是Sequelize正在为您执行的SQL查询。
上面写着
dataValues:
{ usuario_id: 1,
...
}
是您的用户。findAll()
应该为您提供一个包含所有用户的数组。
如果您只想返回dataValues,您可以直接传入raw: true
。
usuarioService.getAll = function () {
Usuario.findAll({ raw: true }).then(function (users) {
//return users;
console.dir(users);
});
}
相关文章:
- 可以'我不明白为什么;t将行和单元格添加到表中
- Javascript模块系统I'I’我正在努力,但搞不明白
- Don'我不明白为什么我的setInterval+jQuery;不起作用
- TypeError:无法读取属性'findAll'的未定义
- Ember、JSONAPI适配器、JSONAPISerializer、findAll不可用
- 关于Javascript继承,我可以'我不明白
- 可以'I don’我不明白我为什么回来了
- 可以'I don’我不明白;使用webpack和es6模块进行EventEmitter
- 为什么我的Mongoose findAll方法返回500错误.
- 我可以'我不明白为什么我能;不要在JavaScript中更改蜡笔的颜色
- 意外;在我的JavaScript中,我不明白为什么
- 我不明白单元测试
- 我没有'我不明白“;temp<<=y"在这个javascript程序中执行
- 我想做一个自定义的dojo JsonRest商店,有一部分我没有'我不明白
- ember dev fixes错误:“;断言失败:findAll的响应必须是数组,而不是未定义的“”;
- 编程新手,可以'我不明白为什么这个因子计算器没有;不起作用
- Sequelize的findAll();我不明白
- findAll() 在 Sequelize 中预先加载的模型上
- 将复杂的联接查询转换为使用 findAll
- 不明白为什么我不用我的脚本更改我的 PHP 变量