使用jquery AJAX和node.js,处理来自服务器的响应

rib*_*ies 10 jquery node.js express

这是我第一次在这里发布一个问题,我大多只是一个潜伏在其他问题上的潜伏者,但这是我一直想弄清楚的事情,因为我的生活不能.

基本上我正在做的是使用来自客户端的AJAX跳转到服务器,运行一些搜索外部API的代码,这会给我一些数据,然后我需要将这些数据返回给客户端.这是我的代码......这都是使用带有express的node.js

客户端

$('#search').click(function(){
        $.ajax({
          type: "GET",
          url: "/search",
          dataType: "json"
        }).done (function (data) {
          alert(data);
        });
    });
Run Code Online (Sandbox Code Playgroud)

服务器端

app.get('/search', function(req, res){
        factual.get('/t/places',{q:'starbucks'}, function (error, data) {
          console.log(data);
          res.send(data);
        });
  });
Run Code Online (Sandbox Code Playgroud)

现在我知道当单击#search按钮时,它会转到服务器并成功运行该代码.但我不知道如何从服务器获取数据并返回客户端以在那里使用它.

我发现其他帖子提到了像res.send/res.write/res.end这样的东西,我已经尝试过各种形式的知识,我似乎永远无法将这些数据传回客户端.

任何提示或可能更好的方法,将非常感谢.

brn*_*nrd 5

尝试以下代码服务器端:

app.get('/search', function(req, res){
    factual.get('/t/places',{q:'starbucks'}, function (error, data) {
      console.log(data);
      res.writeHead(200, { 'Content-Type': 'application/json' }); 
      res.end(JSON.stringify(data));
    });
});
Run Code Online (Sandbox Code Playgroud)

它应该工作.代码客户端看起来不错.

编辑:您还可以使用:

res.json(data);
Run Code Online (Sandbox Code Playgroud)