0
に送られた後、ヘッダーを設定することはできません私は私のコードはJSONエラーをNode.jsの:彼らは
app.post('/dispalymove', function (req, res, next) {
var lMove="";
if(req.body.MoveString !== null){
Move.setMoveUserId(req.user.id);
Move.setMoveString(req.body.MoveString);
a.getLastMove(req.user.GameId,function(move){
console.log("Return from display move:",move)
res.json({"msg": move, "loggedin": "true"});
});
} else {
var output = {"msg": lMove, "loggedin": "true"}
res.json(output);
}
});
I機能にres.jsonを使用した後、私はこのエラーマッサージ
を取得します私が試したUPDATE
getLastMove(id,callback){
var MoveRequest = "SELECT * FROM users ORDER BY id";
var query = connection.query(MoveRequest, function(err,rows, result) {
if (rows.length == 0) {
return "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
}
if (rows.length > 0) {
for (var i in rows) {
var move = rows[i].MoveString;
if (rows[i].GameId == id){
callback(move);
}
}
}
});
var move="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
return move;
}
別のファイルmove.jsに呼ばれるが、私が初めてで、ページの読み込みを出力を得る私は移動するコールバックが、私はまだ、このエラーを取得し、他のapp.postをコメントしようとしたのres後リターン、重複リンクの例のようなJSONと、サーバはそう私は、このエラーを与えますそれはリクエストが「ぶら下がっている」という意味ではないので、何が間違っているのですか?
私は、コールバックの後に復帰を追加することによって、このエラーを修正
app.post('/insertmove', function (req, res, next) {
var lMove="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
if(req.body.MoveString !== null){
Move.setMoveUserId(req.user.id) ;
Move.setMoveString(req.body.MoveString);
a.InsertMove(req.user.GameId);
a.getLastMove(req.user.GameId,function(move){
console.log("Return from insertmove move:",move)
var output = {"msg": move, "loggedin": "true"};
return res.send(JSON.stringify(output));
});
} else {
var output = {"msg": lMove, "loggedin": "true"}; // <=== here lCol always equals ""
return res.send(JSON.stringify(output));
}
});
可能な重複などの
[エラー:クライアントに送信された後にヘッダーを設定できません](http://stackoverflow.com/questions/7042340/error-cant-set-headers-after-they-are-sent-クライアントへ) –
これは完全な例ではありません。あなたはそれに酔いしれるでしょう。基本的に、res.jsonはヘッダーを設定することができます。これにより、レスポンスオブジェクトにデータを送信する前に何も送信しないようにする必要があります。 getLastMoveはコールバックを2回以上呼び出すことができるようです。それを2回目に呼び出すと、このようなエラーが発生します。 – Joe
@Joe私は別のapp.post関数をコールバックgetLastMoveが問題ですか? –