【问题标题】:Cannot retrieve field mongoose in client side无法在客户端检索字段猫鼬
【发布时间】:2019-04-22 00:03:58
【问题描述】:

我的简单问题是:

我在服务器端有一个猫鼬对象:

...
item = {
  name: "Test",
  id: 1
}

// item 是一个 mongo 模式

// id 和 name 在模型 String 和 Number 中定义

然后我在项目中添加新字段提及:

item.mention = [{ id: 1, ... }]

但我无法在客户端提及。

我的回复码:

res.json({ status: 1, message: 'success', data: item })

回复是data: { name: "Test", id: 1 }

我不想在我的 mongo 架构中添加提及。

那么,我的问题是什么?

我该如何解决这个问题?

谢谢!

【问题讨论】:

  • mongoose object 你是如何尝试为你的对象建模的?

标签: node.js mongoose


【解决方案1】:

您可以先将您的 mongoose 文档转换为对象,然后添加您的附加字段。

类似这样的:

let o = item.toObject();
o.mention = [{ id: 1, ... }];
res.json({ status: 1, message: 'success', data: o })

您也可以在回复中添加这些额外数据:

res.json({ status: 1, message: 'success', data: item, mention: [...] })

【讨论】:

    【解决方案2】:

    试试:

    item = JSON.parse(JSON.stringify(item));
    

    在为item 分配新道具之前。

    现在您可以为新的 prop item.mention = some_value; 赋值

    这将为您提供一个可以使用的新副本对象。

    您不能为之前未定义的 mongoose 对象分配新的 prop 值。

    【讨论】:

      猜你喜欢
      • 2015-06-07
      • 2019-10-06
      • 2018-12-10
      • 2020-02-17
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多