定义的变量未定义
Defined variable is undefined
我正在访问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的结果_id是由mongo以这种形式返回的,与这个问题完全无关。
当我尝试时
console.log(customer[0])
我得到
{ _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)
时,我得到了undefined
当我尝试console.log(customer[0].email)
或其他任何一个时,它都很好,并且我得到了预期的值。
据我所知,质量不是一个保留词,我是不是错过了什么?
Mongoose find返回Query对象。它不仅仅是简单的javascript对象。它继承了模型的方法、查询方法、Document的方法。console.log只显示该对象的toString方法结果。它可以通过getter或virtuals进行修改_不带引号的id也指向ObjectId类的String结果。尝试通过客户[0]获取您的价值。get("质量");或者通过customer[0].toObject()将其转换为普通对象;
我把数据插入mongo,运行查询控制台。记录电子邮件、质量等。
一切如愿以偿,没有未定义的洞察力。
我没有使用Mongoose,而是使用mongojs,所以也许mongose中有bug。
这运行良好:
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"
相关文章:
- Socket.IO未定义变量
- 更改 Javascript 对象中所有未定义变量的值
- coffeescript,类未定义变量
- 使用下划线未定义变量时发生抛出/捕获错误
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 使用window.location时未定义变量
- 传递给数据的未定义变量
- bizzare未定义变量
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- JavaScript onClick 参数表示未定义变量
- 在指令中使用 $scope.$watch 处理未定义变量的替代方法
- 对于循环错误:未捕获的引用错误,未定义变量.怎么了
- JavaScript / YouTube API - 未定义变量 YT
- 未捕获的引用错误:在测试真实性时未定义变量
- 通过使用JavaScript“未定义”(变量),我们可以释放系统内存
- 与未定义变量相关的错误
- Angularjs 控制器中的未定义变量
- 角度解析:未定义变量
- BackboneJS Uncaught ReferenceError:未定义变量
- 使用Underscore JS部分和for循环的未定义变量对象