Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定义的变量是未定义的_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 定义的变量是未定义的

Javascript 定义的变量是未定义的,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在访问mongo(通过mongoosecustomer.find())并返回类似的内容 [{ _id: 5029a09e099fb5095fdb2d73, clientId: 22, company: 'X', email: 'X@Y.ca', firstName: 'X', lastName: 'Y', quality: 'Sold', address: { phone: '', alt: '', street1: '',

我正在访问mongo(通过mongoose
customer.find()
)并返回类似的内容

[{ _id: 5029a09e099fb5095fdb2d73,
  clientId: 22,
  company: 'X',
  email: 'X@Y.ca',
  firstName: 'X',
  lastName: 'Y',
  quality: 'Sold',
  address: 
   { phone: '',
     alt: '',
     street1: '',
     street2: '',
     city: '',
     state: 'Ontario',
     country: 'Canada',
     code: '' },
  comments: []
}]
请注意,这是直接从console.log获得的结果。这不是我要输入的内容,这是mongoDB的结果_mongo正在以这种形式返回id,与问题完全无关

当我尝试

console.log(客户[0])
I获取

{ _id: 5029a09e099fb5095fdb2d73,
      clientId: 22,
      company: 'X',
      email: 'X@Y.ca',
      firstName: 'X',
      lastName: 'Y',
      quality: 'Sold',
      address: 
       { phone: '',
         alt: '',
         street1: '',
         street2: '',
         city: '',
         state: 'Ontario',
         country: 'Canada',
         code: '' },
      comments: []
    }
果然

当我尝试
console.log(客户[0].quality)
时,我得到了
未定义的

当我尝试
console.log(客户[0].email)
或任何其他方法时,它工作正常,我得到了预期的值

据我所知,质量不是一个保留的词,我是否遗漏了什么?

这很好:

var customer = [{ _id: "5029a09e099fb5095fdb2d73",  clientId: 22,  company: 'X',  email: 'X@Y.ca',  firstName: 'X',  lastName: 'Y',  quality: 'Sold',  address:    { phone: '',     alt: '',     street1: '',     street2: '',     city: '',     state: 'Ontario',     country: 'Canada',     code: '' },  comments: []}]
console.log(customer[0].quality) // it will give Sold

make _id:5029a09e099fb5095fdb2d73 to _id:"5029a09e099fb5095fdb2d73"

我将您的数据插入mongo,运行查询控制台。日志电子邮件、质量等

一切都按预期进行,没有未定义的洞察力


我没有使用Mongoose,所以Mongoose中可能有bug。

Mongoose返回查询对象。它不仅仅是普通的javascript对象。它继承模型的方法、查询方法和文档的方法。console.log仅显示此对象的字符串方法结果。它可以由getter或virtuals修改_不带引号的id也用于对象id类的字符串结果。尝试按客户[0]访问您的价值。获取(“质量”);或者通过客户[0]将其转换为普通对象

嗯,
\u id
不应该是字符串吗?您周围没有引号。@Amaan是对的,上面的结果是SyntaxError:identifier在数字文字之后立即启动,这是控制台的复制粘贴。log@Amaan尽管如此,这是正确的。您是否尝试过
for(customer[0]中的var prop){console.log(prop);}
?您是否在输出列表中看到
质量