私は2つのmysqlクエリを取得します.1つはグループ番号を取得し、1はそのグループのすべてのドアを表示します。今私は私のgroupnumbersを取得するとき、私はなぜ私は私の配列上にマップ行くrrayにそれらを取得します。Node.jsの後に書いてください
しかし、私はこれを使用すると、誰かに送信した後にエラーを書くことができないのですが、これをどのように修正できるかを知っていますか?最初の要素はres.end()
とレスポンスを閉じ、次のいずれかが応答に書き込もうとすると、それができないように
app.post("/door",function (req,res) {
var door = req.body.door;
Data(door,function (data) {
res.writeHead(200, {'content-type': 'text/json' });
res.write(JSON.stringify(data));
res.end();
});
});
function Data(door,next) {
db.getGroups(function (e,groups) {
if (e) console.log(e);
else {
async.map(groups,function (d) {
db.getDoorD(d.GroupNumber,door,function (e,data) {
next(data);
});
});
}
});
}
ありがとうございますが、依然として同じ問題 – nodeMan
あなたは私のコード例に従っていません。私が非同期バージョンのmapを指摘したのは、反復関数でコールバックを持っていることに注意してください。それが呼び出されるたびに、データを次のデータに渡す必要があります。外部関数でnextを呼び出すと、前と同じように毎回同じロジックを呼び出そうとします。 – Paul