【发布时间】:2021-08-08 21:02:10
【问题描述】:
为什么我在console.log(object.property) 时得到undefined?
这是我的代码:
const adminusersSchema = new mongoose.Schema({});
const adminusers = mongoose.model('adminusers', adminusersSchema, 'adminusers');
app.post('/login', async (req, res)=>{
let result = await adminusers.find();
console.log(result[0]);
console.log(result[0].mail);
res.send();
});
这是控制台的输出:
Connecting to DB
Connected to DB
Server on port: 3000
{
_id: 6110430c94569f3dfc90146d,
mail: 'admin@user.com',
password: 'admin123'
}
undefined
如果我尝试 JSON.parse 我得到一个错误:
app.post('/login', async (req, res)=>{
let result = await adminusers.find();
console.log(result[0]);
console.log(JSON.parse(result[0]).mail);
res.send();
});
SyntaxError: 位置 4 处 JSON 中的意外标记 _
我看不出我的代码有什么问题,因为如果我这样做:
app.post('/login', async (req, res)=>{
let object = {
'test': 'approved',
'problem': 'solved'
}
console.log(object)
console.log(object.test);
// let result = await adminusers.find();
// console.log(result[0]);
// console.log(JSON.parse(result[0]).mail);
// res.send();
});
我的输出是:
Connecting to DB
Connected to DB
Server on port: 3000
{ test: 'approved', problem: 'solved' }
approved
【问题讨论】:
-
您确定对象键和您的 JS 代码使用的是常规字符串
mail,而不是带有奇怪的不可见字符的东西吗?出于这个原因,也始终将控制台输出包含在代码块中而不是图像中。 如果可以避免,图像就是不好的。 -
尝试解析为
JSON.parse(result[0]).mail;,看到输出,好像是解析问题。 -
试试 let result = await adminusers.find()/findOne().lean()
标签: node.js mongoose javascript-objects