node.js - 在将数据库 ID 与用户请求的 ID 进行比较时,无法读取未定义的属性“forEach”
问题描述
我确实将数据插入到 MongoDB 数据库中,现在我想将用户请求的 id 与存储在数据库中的 id 进行比较。当我使用 forEach 循环执行此操作时,收到错误为TypeError: Cannot read property 'forEach' of undefined。我在堆栈溢出中进行了搜索,但仍然无法找出问题所在。帮我解决这个问题!
这是我的代码:
app.get('/product/:id', (req, res) => {
MongoClient.connect(url, { useNewUrlParser: true }, (err, db) => {
if (err) throw err;
var dbo = db.db("product");
var cursor = dbo.collection("details").find({}).toArray((err, result) => {
if (err) throw err;
cursor.forEach((_id)=>{
if (_id == req.params.id) {
return true;
db.close();
}
})
console.log(result);
});
});
});
我存储在数据库中的数据是:
[ { _id: '1', producttitle: 'Levis' } ]
解决方案
您需要迭代结果变量而不是游标,这是因为游标变量未定义,因为任务尚未完成。
此外,您需要访问结果的 _id:
result.forEach((currUser)=>{
if (currUser._id == req.params.id) {
return true;
db.close();
}
})
推荐阅读
- javascript - 正在搜索产品代码,但代码中包含字母
- python - 通过从现有数据框中过滤字符来创建新数据框
- javascript - ChartJs条形图条形值在pdf中显示低于Y轴值?
- firebase-storage - FirebaseError:Firebase 存储:此应用无权访问此项目的 Firebase 存储
- flutter - Wrap 在 listview.builder 颤振中不起作用
- python - 在 hive 中注册 python 自定义 UDF
- django - 覆盖保存方法时,表单对象没有属性“save_m2m”
- android - Dagger Hilt 无法注入 kotlin 数据类
- smtp - Smtp 电子邮件不是从我的 Nodejs 主机发送,而是从 PC 发送
- bash - 在 logcat 上优化 sed