2017-03-03 65 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); 
    }); 
}); 
相關問題