0
私はsails.jsとMongoDBの初心者です。私の質問を読んでくれてありがとう。Sails.js waterline defered
私は本当に問題を抱えています。
状況
私はユーザーデシベル、レポートデシベル、ポストデシベルを持っています。
親がレポートデータであるレポートデータとポピュレートされた投稿データを取得したいと考えています。私はまた、ポストデータからユーザーデータを取得したい。
つまり、ダブルネストされたデータを取得したいと考えています。
Report |_ post |_user
そして、これは私が私のコンソールでは、私のコードを実行
findReports: function(req, res) {
Report.find().populateAll().sort({createdAt: -1}).exec((er, reports) => {
if (er) return res.negotiate(er)
const rs = reports
console.log('rs : ', rs)
rs.forEach((report) => {
if(report.post) {
User.findOne({id: report.post.user}).exec((er, user) => {
report.post.user = user
console.log("before rs : ", rs)
})
console.log("report.post.user : ", report.post.user)
console.log("after rs : ", rs)
} else {
report.comment.user = User.findOne({id: report.comment.user}).exec((er, user) => {
report.commet.user = user
})
}
})
console.log("final rs : ", rs)
res.view('dashboard/reports/index', { reports: rs })
})
},
ReportController.js
の私findReportsアクションですが、結果は次の順番によるプリントされています。 "RSの後..(何とか).."- - 私はしたくない...
- "最終RS ..(何とか).." - 私はしたくありません...
- "前にrs:..(blah).." - 私はこのrsを取得したい!しかし、私のres.view( "ダッシュボード...."、{レポート、rs})は2の結果です。
「User.find」メソッドがロジック全体とは無関係であると思われます。
本当に困っています。アドバイスは本当に役に立ちます。どうかアドバイスをお願いします。