如何通过AJAX将我的Node控制器的结果返回给我的应用程序?

时间:2018-04-09 09:00:39

标签: jquery node.js ajax

这是我的控制器代码

module.exports.key_i = function(req, res, next) {
  // console.log("We are here in webserver key_i");

  var k = req.body.KEY;
  // console.log(k);
  var requestOptions = {
    url: 'http://localhost:3000/api/key_i',
    method: 'POST',
    json:{
      key: k
    }
  }

  request(requestOptions, function(error, response, body) {
    if (error) {
      return res.status(500).send(error);
    } else {
      // console.log("Key_i "+body[0].price);
      var tt = { pp: body[0] };
    } 
  });
}

此处body[0]包含所需的结果。我怎样才能将其传递给我的AJAX响应?

$.ajax({
  url: "http://localhost:3000/ajo",
  method: 'POST',
  contentType: 'application/json',
  data: JSON.stringify({
    KEY: xy
  }),
  success: function(response) {
    console.log("Now response in topbt.js is");
    console.log(response);    
  }
});

我希望body[0]成为我的回应。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您应该使用res(可能.json)返回您的控制器(路线)。所以你的前端应用程序可以从快速路线获得响应。

文档:https://expressjs.com/en/4x/api.html

答案 1 :(得分:0)

我假设您正在发出的请求将返回 JSON

controller.js

module.exports.key_i = function(req, res, next) {

  ...

  request(requestOptions, function(error, response, body) {
    if (error) {
      return res.status(500).send(error);
    }
    // assuming { pp: body[0] }; <- This is the object you want to send in response
    res.send({ pp: body[0] };)

  });
}