0
我試圖對API執行GET請求,並將API響應中的數據返回給客戶端。我認爲客戶端在API完成GET請求之前收到響應。如何更改代碼以確保API的響應傳遞給客戶端?使用響應鏈接GET請求Node.js
if (request.method == 'POST' && request.url == '/locationdata') {
var body = '';
request.on('data', function (data) {
body += data;
});
request.on('end', function() {
var formattedLocation = body.replace(/[\[\]']+/g, '');
var urlAPI = 'https://api.darksky.net/forecast/166731d8eab28d33a26c5a51023eff4c/' + formattedLocation;
response.writeHead(200, { 'Content-Type': 'application/json' });
var apiData = '';
var apirequest = function() {
https.get(urlAPI, function (response) {
response.on('data', function (data) {
apiData += data;
});
response.on('end', function() {
console.log(apiData);
return apiData;
});
});
}
response.end(apirequest);
});
return;
}
我仍然收到一個錯誤。我在節點中獲取API數據,但我認爲在響應結束之前它仍未被髮送到瀏覽器。我在瀏覽器中出現以下錯誤:'「語法錯誤:JSON.parse ...」' –
我調整了答案並在代碼中包含了它的完整副本 – Ryan
它的工作原理!謝謝。你的調整隻是一個小錯誤。我必須改變'response.end(apirequest);''response.end(apiData);' –