Node.js Sequelize-即使只检索到一条记录,也始终返回数组
我在前端使用Sequelize和Postgres和Angular.js 我正在设置一些路由,以便在响应中使用数组:Node.js Sequelize-即使只检索到一条记录,也始终返回数组,node.js,angularjs,ngresource,sequelize.js,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. Expecte
'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资源时,用一种干净的方式包装数据
谢谢 Angular应支持对象响应,但在任何情况下:
Model.find()
将返回一个对象,Model.findAll()
将返回一个数组。您可以切换到使用findAll
,如果在主键上进行过滤,则不会产生太大影响
Model.find()
还将查询参数作为第二个参数,因此您也应该能够执行Model.find({where:..},{plain:false})
,但这还没有经过测试,不完全是公共API。Angular应该支持对象响应,但在任何情况下:
Model.find()
将返回一个对象,Model.findAll()
将返回一个数组。您可以切换到使用findAll
,如果在主键上进行过滤,则不会产生太大影响
Model.find()
还将查询参数作为第二个参数,因此您也应该能够执行Model.find({where:..},{plain:false})
但这还没有经过测试,也不是完全公开的API。如果它与isArray:false一起工作,那么它应该是开箱即用的isArray:false
(这应该是默认值。好吧,它应该与isArray:false
(这应该是默认值)一起工作。