문제점이 있습니다. node.js로 작업 중이며 다른 API 응답에 의존하는 API 호출을하고 싶습니다. 나는 모른다. 내가 뭔가를하려고 노력하지만 난 이런 몇 가지 오류 가지고 : 명시 적으로nodejs의 다른 API 요청에 대한 API 요청을 수행하는 방법
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11)
at ServerResponse.header (C:\workstation\node_modules\express\lib\respons
e.js:719:10)
at ServerResponse.send (C:\workstation\node_modules\express\lib\response.
js:164:12)
at ServerResponse.json (C:\workstation\node_modules\express\lib\response.
js:250:15)
at IncomingMessage.<anonymous> (C:\workstation\server\controllers\apicontroller.js:81:25)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
을, 이것은 내가 원하는 무엇인가 : 1 호출 API를 응답 포함 위도와 경도를 검색 할 수는 2 - 그런 다음에 그들을 번역 좌표 Google api로 지오 코딩하여 읽을 수있는 주소 3 - 마지막으로 프론트 엔드에 읽을 수있는 주소를 표시합니다.
var https = require('https');
var Client = require('node-rest-client').Client;
var client = new Client();
module.exports.getaddresses = function(request,response){
var optionsget = {
host : 'externalhost',
port : 443,
path : '/rest/of/the/api',
method: 'GET',
auth: 'login:pwd'
};
var reqGet = https.request(optionsget, function(res){
var myData = '';
res.on('data', function(d){
myData += d;
});
res.on('end', function(){
var str = JSON.parse(myData);
var locations = [];
var lat, lon, address;
for (var i=0;i<=str.reports.length-1;i++){
lat = str.reports[i].latitude;
lon = str.reports[i].longitude;
var args = {
data: { lat: lat,lon: lon},
headers: { "Content-Type": "application/json" }
};
client.post("http://localhost:3100/api/geocode", args, function (data, myresponse) {
locations.push({
long:str.reports[i].longitude,
latitude:str.reports[i].latitude,
timestamp:str.reports[i].locationts,
address:address
})
});
response.json(locations);
}})
});
reqGet.end();
reqGet.on('error', function(e){
console.error("error:",e);
});
}
누군가가 나를 도울 수 :
이 내 코드?