问题描述
我一直在尝试设置无服务器功能,以便在我的 Gatsby 网站中发送电子邮件。该函数正在托管,但每当我尝试获取它时,它都会告诉我它不存在。
我的收获:
const body = {
name,email,phone,message,};
fetch(`http://localhost:8000/.netlify/functions/sendMail`,{
method: "POST",headers: {
"Content-Type": "application/json",},body: JSON.stringify(body),})
.then((res) => console.log(res.data))
.catch((err) => console.error(err));
gatsby-config.js
中的中间件:
developMiddleware: (app) => {
app.use(
"/.netlify/functions/",createProxyMiddleware({
target: "http://localhost:8000",pathRewrite: {
"/.netlify/functions/": "",})
);
},
函数路径:
解决方法
如果您在开发中使用 netlify-lambda serve <functions folder>
编译和提供函数,则需要将 target
设置为 netlify-lambda
侦听器绑定的端口,即 { {1}} 默认情况下。现在您正在重定向到端口 9000
,这似乎是您的 Gatsby 应用程序运行的端口。
例如,您希望您的设置看起来更像这样:
8000