【发布时间】:2022-11-14 12:13:30
【问题描述】:
我是 JS 和 NodeJs 的新手,我正在尝试创建一个 Web 服务来调用 Open Weather API 以获取当前天气。但是,我必须进行两次 POST 调用才能看到结果。我想我有点理解为什么会这样,但不知道如何解决它。
发布电话
router.get("/", (request, response) => {
response.json({
CurrentTemp: currentTemp,
maxTemp: maxTemp,
lowTemp: lowTemp,
city: city,
weather: weather
})
})
API调用函数
function forecast () {
var url = `http://api.openweathermap.org/data/2.5/weather?`
+`q=${userCity}&appid=${API_KEY}`
requestWeather({ url: url, json: true }, function (error, response) {
if (error) {
console.log('Unable to connect to Forecast API');
}
else {
currentTemp = response.body.main.temp
maxTemp = response.body.main.temp_max
lowTemp = response.body.main.temp_min
city = response.body.name
weather = response.body.weather
}
})
}
【问题讨论】:
-
forecast是异步的。它应该得到一个在forecast完成时触发的回调,或者将所有内容切换为 promises。您不应该设置全局变量,因为它们由每个用户共享,并且您正在覆盖不同用户的结果
标签: javascript node.js api