コントローラーでデータベースを照会している単純な販売アプリがあります。結果を取得し、async.each 関数を使用してデータを操作し、配列をビューに送信します。
私のログは配列内のデータを表示していますが、私のビューは空の配列を受け取っています。
"index": function(req, res, next) {
Sales.find().sort("createdAt DESC").done(function(err, sales) {
if (err) {
res.send("An error has occured. :(");
} else {
if (!sales) {
req.session.flash = {
err: {
message: "You have no billing as of now.",
style: "alert-info"
}
}
} else {
var bills = [];
async.eachSeries(sales, function(thisSale, callback) {
if (!bills[thisSale.billingNo]) {
bills[thisSale.billingNo] = {
id: thisSale.billingNo,
createdAt: thisSale.createdAt,
total: (thisSale.quantity * thisSale.price),
location: thisSale.location,
};
} else {
bills[thisSale.billingNo].total += (thisSale.quantity * thisSale.price);
}
callback();
}, function(err) {
if (err) {
console.log('Something went wrong !');
exit();
} else {
res.send({
billing: bills
});
console.log("=====\nBILL\n=====\n", bills);
}
});
}
}
});
},
res.view を res.send に置き換えてコードをデバッグしましたが、クライアント側ではこれしか受け取りません。
{
"billing": []
}
コンソール ログには次のように表示されますが、
=====
BILL
=====
[ '53b95fdc1f7a596316f37af0': { id: '53b95fdc1f7a596316f37af0',
createdAt: Sun Jul 06 2014 20:10:28 GMT+0530 (IST),
total: 6497,
location: 'Location A' },
'53b8f7c81f7a596316f37aed': { id: '53b8f7c81f7a596316f37aed',
createdAt: Sun Jul 06 2014 12:46:24 GMT+0530 (IST),
total: 6497,
location: 'Location A' } ]
誰かが私が間違っていることを理解するのを手伝ってくれますか?