请求拥有API端点

时间:2016-05-03 12:14:45

标签: javascript node.js rest express

在节点/快速方面,我正在尝试向刚创建的端点发出get请求。

这样做的正确方法是什么?我可以使用fetch库(isomorphic-fetch)

我的尝试:

router.get('/displayweather', function(req, res) {  

  fetch('/weather')
    .then(function(response){
      res.send(response);
    });
});

router.get('/weather', function(req, res){
  var fetchUrl = 'http://api.wunderground.com/api/xyz-token/conditions/q/CA/San_Francisco.json';
  fetch(fetchUrl)
    .then(function(response){
      if (response.status >= 400) {
        throw new Error("Bad request response from server");
      }
      return response.text();

    }).then(function(body) {
      res.send(body);

    });

});

如果有另一个router.get(..)方法使用外部API检索天气数据

1 个答案:

答案 0 :(得分:1)

我会忘记第一部分并专注于您添加的代码:

服务器

router.get('/weather', function(req, res){
  var fetchUrl = 'http://api.wunderground.com/api/xyz-token/conditions/q/CA/San_Francisco.json';
  fetch(fetchUrl)
    .then(function(response){
      if (response.status >= 400) {
        throw new Error("Bad request response from server");
      }

      // return json
      return response.json();
    }).then(function(body) {

      // but stringify it when you send it
      res.send(JSON.stringify(body));
    });
});

客户端

fetch('/weather')
  .then(function (json) {
    return JSON.parse(json);
  })
  .then(function (data) {
    // do something with the data
  })