gpt4 book ai didi

javascript - 动态创建键值对数组(从 mongoDB 数据库中获取)

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

我正在尝试以动态方式创建一个 key-value 对数组。 values 部分是从我的 routes 中的数据库中获取的。这就是我正在做的。

   router.get('/account',isAuthenticated, function(req,res){
var following_users_details = [];

for (var i = 0;i<req.user.following_users.length;i++)
{
var following_user = req.user.following_users[i];// following_users is a field of Array type in my MongoDB database
User.findOne({'username' : following_user },
function(err,user)
{
following_users_details.push({
username: user.username,
profilepic : user.photo,
userbio : user.bio
});
});
}
res.render('users/userAccount',{user:req.user, following_users_details:following_users_details });
});

但是当我尝试打印我的 key-value 对数组时,我什么也得不到。

for(var i = 0;i<following_users_details.length;i++)
{
console.log("Username = "+following_users_details[i].username);
console.log("Username = "+following_users_details[i].profilepic);
console.log("Username = "+following_users_details[i].userbio);
}

当我尝试打印数组时,控制台上没有任何输出。我想我错过了一些非常明显的东西。这是创建数组的正确方法还是我做错了?

附言- 我已经通过了this , thisthis ,但这些都不能直接解决我的问题。

最佳答案

findOne 中的回调发生在未来,它是异步的。您必须在所述回调中呈现数据才能存在。

   User.findOne({'username' : following_user },
function(err,user)
{
following_users_details.push({
username: user.username,
profilepic : user.photo,
userbio : user.bio
});
res.render('users/userAccount',{user:req.user, following_users_details:following_users_details });
});
}

关于javascript - 动态创建键值对数组(从 mongoDB 数据库中获取),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047069/

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