0

Node.JS で実行されているサーバー側のコードから JSON でクエリ データを取得しようとしています。

これが私のクライアント側のAJAXリクエストです:

$(function() {
  var values = $(this).serialize();
  $.ajax({
    url: '/querySearch',
    type: 'post',
    data: values,
    success: function(msg){
      console.log(msg);
    },
    error: function(){
      alert('failure');
    }
  });
});

私のサーバー側のコード:

app.post('/querySearch', function(req, res) {
  var queryNumber = Number(req.body.queryNumber);
  if (queryNumber == 1){
    executeQuery1(res, sendQueryResults);
  }
  else if (queryNumber == 4){
    executeQuery4(res, sendQueryResults);
  }
  else if (queryNumber == 6){
    executeQuery6(res, sendQueryResults);
  }
  else if (queryNumber == 7){
    executeQuery7(res, sendQueryResults);
  }
});

function executeQuery1(res, callback) {
    var query = "" +
    'query string';
    service.oneshotSearch(query, {}, function(err, results) {
      if (err) {
        console.log(err);
        alert("An error occurred with the search");
        return;
      }
    callback(res, results);
    });
  });

} 

function sendQueryResults(res, results) {
  res.json(JSON.stringify(results));
  res.end();
}

しかし、現時点では、私の Web ページの読み込みも完了していません。私は何を間違っていますか?

4

2 に答える 2

1

データを書き込んだ後、 res.end()を呼び出す必要があります。

于 2013-07-17T17:23:03.963 に答える