将节点api数据提供给客户端js

时间:2017-03-02 19:13:47

标签: javascript node.js reactjs

我正在使用request进行api调用,并将一些数据返回给我的应用。 我能够在我的代码的身体响应中接收数据

var express = require('express');
var request = require('request');
var app = express();

app.get('/', function(req, res){
    res.sendFile(__dirname + "/index.html");
    request('https://api.darksky.net/forecast/apikey/37.8267,-122.4233', function (error, response, body) {
      console.log('error:', error); 
      console.log('statusCode:', response && response.statusCode); 
      console.log('body:', body); 
    });
}).listen(3000);

console.log('Server is up and running');

进行了api调用,然后我在/ - 到目前为止点击我的索引文件,那么好

但是我想用我的数据将身体响应发送到react js文件,这样我就可以使用这些数据来提供给客户端了。 我似乎无法找到任何有关如何将数据提供给另一个javascript文件的帮助。

1 个答案:

答案 0 :(得分:1)

我认为您应该在一条路径中提供索引,而在另一条路径中提供darksky请求。

var express = require('express');
var request = require('request');
var app = express();

app.get('/', function(req, res){
    res.sendFile(__dirname + "/index.html");
});

app.get('/api/forecast, function(req, res) {
    request('https://api.darksky.net/forecast/apikey/37.8267,-122.4233', function (error, response, body) {
        console.log('error:', error); 
        console.log('statusCode:', response && response.statusCode); 
        console.log('body:', body);
        res.json(body);
    });
});

app.listen(3000);
console.log('Server is up and running');

并在客户端使用ajax请求到您的服务器以获取正文,如下所示:

return $.getJSON('http://localhost:3000/api/forecast')
      .then(function(data) {
        this.setState({ forecast: data.results });
      });

希望它有所帮助!