tip*_*ein 27 javascript mongoose mongodb function-prototypes javascript-objects
是否有一些我缺少的东西允许项目作为带参数的对象记录,但当我尝试访问该参数时,它是未定义的?
到目前为止我尝试过的:
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'对象的访问有关,或者他们试图让对象超出函数的范围.在这种情况下,我不认为我正在做其中任何一个,但如果我错了就通知我.谢谢
Vin*_*Bel 36
您可以调用该toObject方法以访问字段.例如:
var itemObject = item.toObject();
console.log(itemObject.title); // "foo"
Run Code Online (Sandbox Code Playgroud)
正如您所指出的那样,真实字段存储在_doc文档的字段中.
但为什么console.log(item)=> { title: "foo", content: "bar" }?
从猫鼬(document.js)的源代码,我们可以发现,该toString方法Document调用的toObject方法.因此console.log将正确显示字段.源代码如下所示:
var inspect = require('util').inspect;
...
/**
* Helper for console.log
*
* @api public
*/
Document.prototype.inspect = function(options) {
var isPOJO = options &&
utils.getFunctionName(options.constructor) === 'Object';
var opts;
if (isPOJO) {
opts = options;
} else if (this.schema.options.toObject) {
opts = clone(this.schema.options.toObject);
} else {
opts = {};
}
opts.minimize = false;
opts.retainKeyOrder = true;
return this.toObject(opts);
};
/**
* Helper for console.log
*
* @api public
* @method toString
*/
Document.prototype.toString = function() {
return inspect(this.inspect());
};
Run Code Online (Sandbox Code Playgroud)
确保您在架构中定义了标题:
var MyCollectionSchema = new mongoose.Schema({
_id: String,
title: String
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17146 次 |
| 最近记录: |