Node.js を使用して結果セットをクライアントに返す際に問題が発生しています。私はそれに慣れておらず、プロジェクトに使用していますが、行き詰まっており、その理由がわかりません。状況は次のとおりです。Web ページ、サーバー、リクエスト ハンドラー、およびデータベース インターフェイスがあります。クライアントとサーバーの間で問題なくデータを送受信できます。うまくいかないのは、クエリの結果をクライアントに送り返そうとしたときだけです。
function doSomething(response)
{
var data = {
'name': 'doSomething'
};
response.writeHead(200, {'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*'});
response.end(JSON.stringify(data));
}
クライアント側のオブジェクトから名前を読み取ることができるので、これはうまく機能しますが、
function fetchAllIDs(response)
{
dbInterface.fetchAllIDs(function(data) {
// console.log(data) prints the correct information here
response.writeHead(200, {'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*'});
response.end(data);
// console.log(data) from the client side is just blank
});
}
問題は、コールバックと応答の処理方法にあると思います。mysql を使用しなくても、残りのコードは正常に動作するからです。ありがとう!
編集: 人々を混乱させると思われる部分コードを削除しました。コールバックの外に応答コードがある場合、サーバーにデータを戻すことができることを示すだけでした。私の実際のコードでは、2 つの応答ステートメントをまとめていません。fetchAllIDs 関数からクライアントに行を戻すことができません。