Sequelize - 即使只检索到一条记录,也始终返回数组

时间:2014-09-24 11:08:42

标签: node.js angularjs ngresource sequelize.js

我在前端使用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时,是一种干净的数据包装方式吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

Angular应支持对象响应,但无论如何:

Model.find()将返回一个对象,Model.findAll()将返回一个数组。您可以只使用findAll进行交换,如果对主键进行过滤则不会产生太大影响。

Model.find()也会将查询参数作为第二个参数,因此您还应该能够执行Model.find({where: ..}, {plain: false})但尚未经过测试且不完全是公共API。