【问题标题】:nodejs property undefinednodejs 属性未定义
【发布时间】:2012-07-03 19:09:54
【问题描述】:

我定义了:

  • 用于保存对象的猫鼬模式 (Type1)
  • 其他 2 个使用其他属性(内容和其他...)扩展第一个模式(Type2 和 Type3)的其他人。

当我从数据库加载保存为类型 2 的对象类型 1 时,我可以访问除一个(内容属性)之外的所有属性。但是,如果我执行object.toString(),则该属性确实存在。

这怎么可能?

谢谢。

【问题讨论】:

  • 所以,没有代码,没有object.toString() 的输出,什么都没有?你还指望有人盲目地帮助你?
  • 执行 object.toString() 字符串具有从数据库加载的所有属性,但我无法访问 Type2 或 Type3 的属性。

标签: node.js express mongoose


【解决方案1】:

猫鼬对象的属性始终与其架构相同。加载为 Type1 架构将具有 Type1 架构的属性。

底层数据可能更大(因为 Schema 继承或仅仅因为有人直接在 MongoDB 中存储了更多数据),但您不能仅使用属性从Type1 级别访问它。您可以尝试使用(未测试)的方法是object.getValue('content');。另外,我认为object._doc 拥有来自数据库的真实数据。

最后一件事:object.toString 实际上已被覆盖,它显示整个对象的inspect。这就是您看到基础数据的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 2017-03-06
    • 2018-07-08
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    相关资源
    最近更新 更多