在 create-react-app 中使用 Netlify 函数时出现 304 错误
Posted
技术标签:
【中文标题】在 create-react-app 中使用 Netlify 函数时出现 304 错误【英文标题】:304 Error using Netlify Functions in create-react-app 【发布时间】:2021-11-08 11:29:07 【问题描述】:※发布问题后编辑了一些代码。新代码如下。
我正在尝试使用 Netlify 函数来隐藏我的 API 密钥以获取数据。但是,它返回 304 并且似乎无法正常工作。 以下代码返回错误“SyntaxError: Unexpected token
谁能帮我解决这个问题?
■functions/fetch-weather.js
const handler = async (event) =>
try
const city = event.queryStringParameters;
const API = process.env.REACT_APP_API_KEY;
const response = await fetch(
`https://api.openweathermap.org/data/2.5/weather?q=$city&appid=$API`
);
const data = await response.json();
return
statusCode: 200,
body: JSON.stringify(data),
;
catch (error)
console.log( statusCode: 500, body: error.toString() );
return statusCode: 500, body: error.toString() ;
;
module.exports = handler ;
■getCurrentWeather.js
export const getCurrentWeather = async (
city,
setLocation,
setWeather,
setNotification
) =>
const fetchWeather = async () =>
setNotification( status: 'pending', message: 'Loading...' );
const response = await fetch(
`/.netlify/functions/fetch-weather?city=$city`
);
if (!response.ok)
throw new Error('cannot get current weather data');
const data = await response.json();
return data;
;
try
const data = await fetchWeather();
console.log(data);
setLocation(data.name);
const [array] = data.weather;
setWeather(array.main, array.description);
setNotification( status: 'success', message: 'Success' );
catch (error)
console.log(error);
setNotification( status: 'error', message: 'Cannot find result' );
;
■netlify.toml
[build]
functions = "functions"
publish = "src"
■package.json (运行“npm i netlify-cli --save-dev”)
"devDependencies":
"netlify-cli": "^6.8.12"
■控制台图像(使用“netlify dev”打开页面后) error network
【问题讨论】:
【参考方案1】:在您的 netlify 函数发出请求后,您需要使用 .json
来获取 json 数据
const response = await fetch(
`https://api.openweathermap.org/data/2.5/weather?q=$city&appid=$API`
);
const data = await response.json();
【讨论】:
在您的 netlify 函数上使用 console.log 打印错误并将其附在此处会有所帮助 感谢您的建议!我在上面添加了错误和网络检查图像。我还添加了几个console.log,但唯一返回的是“SyntaxError: Unexpected token 我说的是 netlify 函数,在 netlify 服务器上运行的代码请参阅此文档docs.netlify.com/functions/logs 尝试查看函数本身的日志,看看函数内部出了什么问题以上是关于在 create-react-app 中使用 Netlify 函数时出现 304 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 7 中使用 create-react-app
你如何在带有 Typescript 的 create-react-app 中使用 Mocha?
在 create-react-app 中,添加 Bootstrap 4?
为啥我在使用 create-react-app 的生产构建中丢失了 Bootstrap 样式?