我正在為一個克隆的Twitter創建后端API。下面的API顯示了一個用戶的資料。我想顯示該用戶所關注的人的推文。但是在我的回應中,tweets陣列回傳了一個空陣列,盡管我已經將資料推送到這個陣列中。
誰能幫助我理解為什么回應中的 tweets 陣列是空的?
app.get('/api/profile'/span>, auth, function (req, res) {
var email1 = req.user.email;
var followers_data = [];
var tweets = [] 。
follower.find({ emailoffollowee: email1 }, (err, results) => /span> {
if (err)
console.log(err)。
else {
results.map((d, k) => {
followers_data.push(d.emailoffollower) 。
})
for (var i = 0; i < followers_data.length; i ) {
Tweet。 find({ author: followers_data[i] }, (err, results1) => /span> {
if (err)
console.log(err)。
else {
results1.map((d, k) => {
tweets.push(d)。
})
}
})
}
res.json({
isAuth: true,
id: req.user._id,
email: req.user.email。
name: req.user.firstname req.user.lastname,
followers: followers_data,
tweet: tweets
});
}
})
.catch(error => {
console.log(error)。
})
});````。
uj5u.com熱心網友回復:
你有Tweet.find(),這是一個異步函式,為了解決這個問題,我使用了async/await
app.get('/api/profile'/span>, auth, function (req, res) {
var email1 = req.user.email;
var followers_data = [];
var tweets = [] 。
follower.find({ emailoffollowee: email1 }, async (err, results) => {
if (err)
console.log(err)。
else {
results.map((d, k) => {
followers_data.push(d.emailoffollower) 。
})
for (var i = 0; i < followers_data.length; i ) {
let results1 = await Tweet.find({ author: followers_data[i] })。
results1.map((d, k) =>/span> {
tweets.push(d)。
})
}
res.json({
isAuth: true,
id: req.user._id,
email: req.user.email。
name: req.user.firstname req.user.lastname,
followers: followers_data,
tweet: tweets
});
}
})
.catch(error => {
console.log(error)。
})
});
我推薦你閱讀這篇文章async/await
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334225.html
標籤:
上一篇:如何在docker-compose.yml中添加DBA帳戶?
下一篇:在C#中對二維陣列進行零填充
