如何在Sequelize中以JSON的forms返回数据
当我做一个Sequelize查询它返回给我一个对象(或数组),我猜是一个Sequelize模型(或模型数组(集合types??)),但没有logging任何地方,所以我只是猜测。 我总是喜欢结果是JSON。 有什么我可以通过查询来强制这个? 如果可能的话,我宁愿不手动按摩每一个结果我回到JSON。
文档显示这个返回一个string:
console.log(JSON.stringify(users))
所以有一些内置的序列化。 现在我正在使用未toJSON()
方法执行此操作:
query().then(function(result) { if(result.length) { return result.toJSON(); } else { return result.map(function(item) { return item.toJSON(); }); } });
这很麻烦。
您可以在查询中使用raw: true
,但是这并不总是像您期望的那样运行,尤其是在关联中。
query({ // ... raw: true }).then(function(result) { // Result is JSON! });
但是,在使用关联的情况下,您可能会得到如下所示的结果:
{ foo: true, "associated.bar": true }
而不是你可能期望的:
{ foo: true, associated: { bar: true } }
当您从数据库检索模型时,可以对结果调用.get({ plain: true})
,它将为您处理转换。 您可以将函数调用的值分配给一个variables。 例如
..).then(function(user){ var _user = user.get({ plain: true}); console.log(_user); //Should be valid json object });
希望这可以帮助。
如果你正在做一个有多个结果的查询,你应该会返回一个数组。 你会发现结果数组中的每个元素都是一个JSON对象。
你应该能够像这样访问给定的字段: result[0].myfieldname
- 在nodejs中获取postgres-query的结果作为variables
- 更改nodejs临时目录
- 从节点传递或使用process.envvariables到reactjs
- 如何在bluemix上configurationsocket.io粘性会话
- 如何将一个childNode从一个节点复制到另一个节点?
- frisbyjs对象数组
- 如何在使用`npm update`时更新package.json中的所有包版本号?
- 将未经身份validation的用户redirect到使用node.js和angularjs的默认URL
- http.request的url http://freegeoip.net/json/14.12.111.113