Javascript 猫鼬罐头;无法访问对象属性?
我正在尝试访问返回的MongoDB(mongoose)查找的属性 如果我尝试对整个对象进行控制台日志记录,我可以看到所有内容。但是如果我尝试记录一个属性,我会得到未定义的Javascript 猫鼬罐头;无法访问对象属性?,javascript,node.js,mongodb,mongoose,ecmascript-6,Javascript,Node.js,Mongodb,Mongoose,Ecmascript 6,我正在尝试访问返回的MongoDB(mongoose)查找的属性 如果我尝试对整个对象进行控制台日志记录,我可以看到所有内容。但是如果我尝试记录一个属性,我会得到未定义的。目标就在那里 function getAll () { let d = q.defer(); User.find({}, function (err, docs) { if (err) { d.reject(err); } for(le
。目标就在那里
function getAll () {
let d = q.defer();
User.find({}, function (err, docs) {
if (err) {
d.reject(err);
}
for(let user of docs) {
console.log(user); // This works!
console.log(user.email); // This returns undefined!
}
d.resolve();
});
return d.promise;
}
有什么想法吗?
我还尝试使用JSON.parse,以防它被字符串化(只是为了确保),但事实并非如此
更新
看来我可以使用user.\u doc.email
访问结果。
但这是什么原因呢?我不记得以前必须这样做。如果在您console.log
整个文档时,文档中的某个字段出现,但在您直接访问该字段时却没有出现,则表示该字段在模型的架构定义中丢失
因此,将email
添加到User
的模式中,您的控制台中到底显示了什么?@RyanO'Hara'undefined'。记录整个用户对象会按照预期打印对象,打印对象的所有属性和值。您还可以提供包含1个数据样本的最小插入脚本吗?“for(user in docs)”;我不能“of”activatedgeek,但我确信这是无关的。因为接收响应的客户端(angularjs)能够访问属性。无论如何,我会加上它。作为一个相对的新手,我觉得这个答案很难理解。那么,更明确地说,如何将字段添加到模型的模式中?具体地说,我使用asn1.js解析证书,在遍历树时,我在尝试访问valueBlock
元素的blockName
字段时使用了这个truoble。它将在我使用JSON.stringify输出整个树时显示,但在我访问valueBlock的blockName属性时不会显示node@CodeJockey这是特定于MongooseJS库()中模式的问答。你在用猫鼬吗?