**已关闭。**此问题不符合Stack Overflow guidelines。它目前不接受回答。
这个问题似乎不是关于在help center定义的范围内编程。
6天前关闭
Improve this question
import fetch from 'node-fetch'
// Constants for API details
const GEO_API_URL = 'https://wft-geo-db.p.rapidapi.com/v1/geo/cities';
const WEATHER_API_URL = 'https://weatherbit-v1-mashape.p.rapidapi.com/current';
// Separate headers for the two APIs
const GEO_HEADERS = {
'X-RapidAPI-Host': 'wft-geo-db.p.rapidapi.com',
'X-RapidAPI-Key': '5470f285aemshd79624e8065945cp1df6d3jsn4b3dac9e4d7c'
};
const WEATHER_HEADERS = {
'X-RapidAPI-Host': 'weatherbit-v1-mashape.p.rapidapi.com',
'X-RapidAPI-Key': '5470f285aemshd79624e8065945cp1df6d3jsn4b3dac9e4d7c'
};
const getCityDetails = async(cityId) => {
try {
let response = await fetch(${GEO_API_URL}?cityId=${cityId}, {
method: 'GET',
headers: GEO_HEADERS
});
let data = await response.json();
if (data.data && data.data.length > 0) {
return data.data[0];
} else {
throw new Error('City not found');
}
} catch (error) {
console.error(Error fetching city details: $ {error.message});
throw error;
}
};
const getWeatherDetails = async(latitude, longitude) => {
try {
let response = await fetch(${WEATHER_API_URL}?lat=${latitude}&lon=${longitude}, {
method: 'GET',
headers: WEATHER_HEADERS
});
let data = await response.json();
if (data.data && data.data.length > 0) {
return data.data[0];
} else {
throw new Error('Weather data not available');
}
} catch (error) {
console.error(Error fetching weather details: $ {error.message});
throw error;
}
};
const getCityAndWeatherInfo = async(cityId) => {
try {
let cityDetails = await getCityDetails(cityId);
let weatherDetails = await getWeatherDetails(cityDetails.latitude, cityDetails.longitude);
return {
population: cityDetails.population,
elevation: cityDetails.elevationMeters,
currentTemperature: weatherDetails.temp
};
} catch (error) {
console.error(Error fetching combined data: $ {error.message});
}
};
// Example usage
getCityAndWeatherInfo('Q5465')
.then(data => {
console.log(data);
});
问题如下:
创建一个模块,用于查找特定城市的当前信息。可以使用此API(https://rapidapi.com/wirefreethought/api/geodb-cities/)查找城市信息,包括坐标。
- 我们将使用(node.js)Fetch
- 你可以假设这个城市总是在南非。
- 将显示以下详细信息:
- 人口
- 标高
- 当前温度(使用此天气API:https://rapidapi.com/weatherbit/api/weather/)
- 所有潜在的错误都应该得到适当的处理。
我订阅了上面的,因为我需要这样做。
代码中的一些东西不起作用,目前我不知道在哪里搜索问题了。
1条答案
按热度按时间iecba09b1#
据我所知,“代码中的某些东西不起作用”,你的意思是代码没有正确编译,对吗?
由于控制台的原因,出现了编译错误。错误消息。您需要使用反引号``来在控制台错误消息中使用${}。
尝试更改此内容:
console.error(获取天气详细信息时出错:${error.message});
到这个:
console.log(
获取城市详细信息时出错:${error.message}
);您可以在这里了解更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals