小编Tho*_*s W的帖子

Mongoose/MongoDB结果字段在Javascript中显示为未定义

是否有一些我缺少的东西允许项目作为带参数的对象记录,但当我尝试访问该参数时,它是未定义的?

到目前为止我尝试过的:

  • console.log(item)=> { title: "foo", content: "bar" },没关系
  • console.log(typeof item) =>对象
  • console.log(item.title) >> undefined"

我将包括一些上下文,以防它与问题相关.

var TextController = function(myCollection) {
  this.myCollection = myCollection
}

TextController.prototype.list = function(req, res, next) {
  this.myCollection.find({}).exec(function(err, doc) {
    var set = new Set([])
    doc.forEach(function(item) {
      console.log(item)         // Here item shows the parameter
      console.log(item.title)   // "undefined"
      set.add(item.title)       
    })
    res.json(set.get());
  })
}
Run Code Online (Sandbox Code Playgroud)

根据建议,我debugger在此行之前删除了通过节点repl调试器检查实际是什么项目.这就是我发现的:http://hastebin.com/qatireweni.sm

从这开始我尝试了console.log(item._doc.title)它的效果很好..所以,现在看起来更像是一个猫鼬问题.

有类似的问题,但它们似乎与'this'对象的访问有关,或者他们试图让对象超出函数的范围.在这种情况下,我不认为我正在做其中任何一个,但如果我错了就通知我.谢谢

javascript mongoose mongodb function-prototypes javascript-objects

27
推荐指数
2
解决办法
2万
查看次数