gpt4 book ai didi

javascript - 我如何在 mongoOp 查找查询之外的 Node js 中打印结果数组?

转载 作者:行者123 更新时间:2023-11-30 06:21:31 24 4
gpt4 key购买 nike

我是 Node.js 的新手,我想将数据数组传递给 Controller ​​。但是我无法在数组中插入 for 循环数据,我还想从辅助函数中获取结果数据。

router.get("/list-group", function(req, res) {
sess = req.session;
var response = {};
if (sess.loginData) {
var TableData = [];
var i = {};
var result = [];
mongoOp.users_group.find({
group_id: req.query.group_id
}, function(e, d) {
var len = d[0].assign_user_id.length;
var assignuserid = d[0].assign_user_id;
for (var i = 0; i < assignuserid.length; i++) {

var assignid = assignuserid[i];
mongoOp.users.find({
_id: assignid
}, function(err, data) {

// This is result array
result[i] = data;

})

}
// And I want to print result array here
console.log(result);

});

} else {
response = {
"error": true,
"message": "Invalid Login"
};
res.json(response);
}
})

最佳答案

我会使用 asyncawait

router.get('route', (req, res) => {
// ...
users.find(query, (err, d) => {
try {
// ...
var results = []
for (var data of array) {
const result = await fetchUser(data)
results.push(result)
}
console.log(results)
} catch (err) {
console.log('some error occured', err)
}
})
})

async function fetchUser(id) {
return new Promise((resolve, reject) => {
users.find({ _id: id }, (err, data) => {
return err ? reject(err) : resolve(data)
})
})
}

如果您对asyncawait 不太熟悉,我会推荐this video

关于javascript - 我如何在 mongoOp 查找查询之外的 Node js 中打印结果数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52792209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com