【发布时间】:2020-12-04 16:51:26
【问题描述】:
这是猫鼬中的User 架构:
var userSchema = new mongoose.Schema({
email: {
type: String,
unique: true,
required: true,
},
name: {
type: String,
required: true,
},
Addtasks: [
{
topic: String,
words: Number,
keywords: String,
website: String,
otherdetails: String,
exampleRadios: String,
deadline: Date,
Date: String,
fileName: String,
Bigpaths: [],
},
],
});
module.exports = mongoose.model('User', userSchema);
我想使用/访问Bigpaths 数组,该数组在Addtasks 数组中定义,该数组在User 中定义。 mongoDB 中已经有数据,我通过 UI 页面插入了这些数据。我正在尝试以下代码,但在控制台中出现此错误:
data.Addtasks[Object.keys(data.Addtasks).length - 2].Bigpaths.forEach(
(element) => {
// ...
}
)
作为
TypeError: Cannot read property 'Bigpaths' of undefined
at \Desktop\grumpytext\routes\index.js:99:71
代码:
const { files } = req;
User.findOne({ email: req.user.email }, function (error, data) {
if (error) {
console.log('Three');
} else if (data) {
if (Object.keys(data.Addtasks).length > 1) {
data.Addtasks[Object.keys(data.Addtasks).length - 2].Bigpaths.forEach(
(element) => {
files.forEach((currentElement) => {
if (element.name == currentElement.filename) {
files.pull(currentElement.filename);
}
});
}
);
}
}
});
如何解决此错误或如何访问Bigpaths 数组的所有元素以便我可以使用forEach 循环对其进行迭代?
【问题讨论】:
标签: javascript node.js arrays express mongoose