我正在构建一个读取用户列表的API。我的mongoose Users模型有一个虚拟字段“fullname”,它返回一个包含用户名字和姓氏的连接字符串。 当我读取数据库并从我的API返回用户JSON时,我无法在返回的JSON中看到此字段。
事实证明,JSON stringify删除了虚拟字段,即使它们的“typeof”返回“string”
我通过使用数组映射函数将这些虚拟提取到其他属性中找到了解决方案,但我必须将所有属性克隆到另一个对象,以使它们通过stringify。它使我循环于效率不高的值。我更喜欢一个更清洁,有记录的解决方案
答案 0 :(得分:10)
我一直在为我的mongoose架构添加以下选项:
toObject: {
virtuals: true
}
,toJSON: {
virtuals: true
}
事实证明,在记录整个数据之后,它确实能够在JSON.Stringified时输出虚拟。还必须在toObject选项中放置virtuals:true。