And*_*Ray 7 postgresql node.js sequelize.js
当我创建一个Sequelize查询时,它返回给我一个对象(或数组),我猜测它是一个Sequelize模型(或模型数组(一个集合类型??))但它没有记录在任何地方,所以我只是猜测.我总是希望结果是JSON.我可以在查询中传递任何强制执行此操作的内容吗?如果可能的话,我宁愿不按摩每一个结果我都会回到JSON.
文档显示这将返回一个字符串:
console.log(JSON.stringify(users))
Run Code Online (Sandbox Code Playgroud)
所以有一些内置的序列化.现在我正在使用未记录的toJSON()方法执行此操作:
query().then(function(result) {
if(result.length) {
return result.toJSON();
} else {
return result.map(function(item) {
return item.toJSON();
});
}
});
Run Code Online (Sandbox Code Playgroud)
这很麻烦.
小智 9
从数据库中检索模型时,可以调用.get({ plain: true})结果,它将为您处理转换.您可以将函数调用的值赋给变量.例如
..).then(function(user){
var _user = user.get({ plain: true});
console.log(_user); //Should be valid json object
});
希望这可以帮助.
您可以raw: true在查询中使用,但这并不总是像您期望的那样,特别是对于关联.
query({
// ...
raw: true
}).then(function(result) {
// Result is JSON!
});
Run Code Online (Sandbox Code Playgroud)
但是,在您使用关联的情况下,您可能会得到以下内容:
{
foo: true,
"associated.bar": true
}
Run Code Online (Sandbox Code Playgroud)
而不是你可能期望的:
{
foo: true,
associated: {
bar: true
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12609 次 |
| 最近记录: |