如何使用nodeJS库从webAPi获取数据?

时间:2017-03-03 14:34:20

标签: javascript node.js express

我是nodeJS的新手,我想使用nodeJS从webApi获取数据,例如,当我调用

  

MYDOMAIN / getAllStudents

我想要所有学生的数据以及我什么时候

  

MYDOMAIN /学生/ 4

然后我只想要 ID = 2

的学生数据

-challenge -

使用express我可以指定这样的路线

var app=express();
app.get('/getAllStudents',(request,response)=>{    
console.log('we are listening !!!');
}).listen(8080);

但是当我尝试在回调函数中进行调用时,我无法获取值,我的完整代码

var http=require('http');
var express=require('express');

var app=express();

 var options={host: '172.17.144.6',
  port: 8394,
  path: '/api/Masterdata/getAllStudents',
  method: 'GET'}

app.get('/getAllStudents',(request,response)=>{

http.get(options,(res)=>{
res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});
console.log('we are listening !!!');
}).listen(8080);

我想要实现的是,当我点击 mydomain/getAllStudents 时,我想获取所有数据。我怎么能用nodeJS做到这一点?我可以使用nodeJS来满足我的要求吗?

1 个答案:

答案 0 :(得分:2)

所以基本上你想在从另一个API解析数据后通过express公开数据。 你可以这样做:

要从节点js进行调用,您可以使用此库: node-rest-client

var Client = require('node-rest-client').Client;
var remoteURL = "172.17.144.6:8394/api/Masterdata/getAllStudents";

var express = require('express');
var students = express.Router();
students.route('/getAllStudents')
 .get(function(req, res) {
    client.get(remoteURL, function (data, response) {
     console.log(data);
    if(response.statusCode === 200)
      res.status(200).send(data);
    });
});