Я новичок в узле.Я создал простой сервер.Идея состоит в том, что при каждом запросе эти серверы отправляют HTTP-запрос к API погоды, а когда получают ответ, отправляют ответ клиенту.Я думаю, что сервер отправляет ответ слишком быстро.Это мой код:
var http = require("http");
function getWeather()
{
var http2 = require("http");
http2.get("http://api.openweathermap.org/data/2.5/weather?lat=48.914348&lon=2.300282&appid=blabla123456&units=metric", (resp) => {
let data = '';
var answer = '-';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
answer += JSON.parse(data).name + ", " + JSON.parse(data).sys.country + "\n" +JSON.parse(data).main.temp + "C";
return(answer);
});
}).on("error", (err) => {
console.log("Error: " + err.message);
});
}
function hi(){
return(5);
}
http.createServer(function (request, resp) {
resp.writeHead(200, {'Content-Type': 'text/plain'});
resp.end("Answer: " + hi() + " " + getWeather());
}).listen(8080);
console.log('Server running');
Как видите, функция getWeather возвращает ответ, а функция hi возвращает 5. Мой ответ сервера - «Ответ: 5 неопределен», поэтому возвращение getAnswer () не представлено., но возврат hi () есть.
В консоли ответ печатается после ответа моего сервера, и это именно то, что я хочу показать, но слишком поздно.
Надеюсь, вы можете помочь мне решить эту проблему:)
Спасибо!