我在前端使用Sequelize与Postgres和Angular.js。
我正在设置一些路由以期望响应中的数组:
'getData': {
method: 'GET',
// isArray: true,
url: 'stuff/:id',
params: {id: '@id'}
}
然而,当只检索到一条记录时,Sequelize似乎直接返回一个对象 而不是一个包含一个对象的数组,它打破了资源:
Error in resource configuration. Expected response to contain an array but got an object
有没有办法设置Sequelize以便始终返回数组,即使只检索到一条记录?
或者,当数据到达ng-resource时,是一种干净的数据包装方式吗?
谢谢!
答案 0 :(得分:4)
Angular应支持对象响应,但无论如何:
Model.find()
将返回一个对象,Model.findAll()
将返回一个数组。您可以只使用findAll
进行交换,如果对主键进行过滤则不会产生太大影响。
Model.find()
也会将查询参数作为第二个参数,因此您还应该能够执行Model.find({where: ..}, {plain: false})
但尚未经过测试且不完全是公共API。