我试图将函数fetchCityData
外包到lib/cityData中,并在以后的不同组件中使用它。我有一个next.js应用程序,在那里我使用API路由进行外部API调用。所以这有点复杂,但我的老板希望我这样做。让我们从
lib/cityData.js
const fetch = require('cross-fetch');
const fetchCityData = (city) => {
const options = {
method: `POST`,
};
fetch(`http://localhost:3000/api/weather?city=${city}`, options)
.then((response) => {
if(response.ok){
return response.json().then(data => console.log(data))
}
throw new Error('Api is not available')
})
.catch(error => {
console.error('Error fetching data: ', error)
})
}
fetchCityData('London')
module.exports.fetchCityData = fetchCityData;
现在我只是想在控制台中测试这段代码。如果我使用fetch(/api/weather?city=${city})
,我得到TypeError:仅支持绝对URL。如果我使用一个完整的URL来测试它,我会得到Error fetching data: FetchError: request to http://localhost:3000/api/weather?city=London failed, reason: connect ECONNREFUSED 127.0.0.1:3000
。这是在我将代理添加到我的package.json之后。以前我也不会捡东西。我还尝试将开发和生产URL添加到我的.env.local文件中-这也没有解决问题。有什么解决办法吗?
1条答案
按热度按时间7tofc5zh1#
添加服务器和环境解决了这个问题