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');
    }
  });
});

我的serserside代码:

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();
}

但是,目前,我的网页甚至还没有完成加载。我究竟做错了什么?

4

2 回答 2

1

写入数据后,您需要调用res.end()

于 2013-07-17T17:23:03.963 回答
0

好吧,我看到的一个问题可能是res.json接受一个对象并且您正在传递一个字符串。尝试:

res.json(results);

或者只是res.send

res.send(JSON.stringify(results));

或者我认为这也可以

res.send(results);

这三个应该有相同的结果。

于 2013-07-18T03:52:45.837 回答