2017-03-03 66 views
1

我是新来的NodeJS,我想用的NodeJS,例如来从的WebAPI的数据,当我做出了如何使用nodeJS库从webAPi获取数据?

MYDOMAIN/getAllStudents通话

我希望所有的学生数据和当我这样做

MYDOMAIN /学生/ 4

的话,我希望S的唯一数据与ID tudent = 2

-challenge-使用表达我可以指定这样

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); 

我在想什么? ieve是,当我打到mydomain/getAllStudents我想获得所有的数据。我怎么可以用nodeJS做到这一点?我可以用nodeJS来完成我的要求吗?

+0

变化'request.GET中('172.17.144.6:8394/api/Masterdata/GetAllCountry '';' 到 'request.get('/ api/Masterdata/GetAllCountry');' 不确定,但我相信因为您已经在选项中定义了url pattern(?),所以重新定义它会导致其创建网址类似于 'http://www.172.17.144.6:8394/172.17.144.6:8394/ap我/ Masterdata/GetAllCountry' –

+0

请看我更新的问题,谢谢 –

回答

2

所以基本上你想通过表达式分析他们从另一个API后分析数据。 你可以这样做:

为了从节点调用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); 
    }); 
}); 
相关问题