我正在尝试使用netlify-lambda
在本地测试Netlify的lambda函数,但是无法使该代理与Gatsbyjs一起使用。我一直在控制台中收到此消息:
[HPM] Rewriting path from "/.netlify/functions/add-subscriber" to "/add-subscriber"
[HPM] GET /.netlify/functions/add-subscriber ~> http://localhost:9000
[HPM] Error occurred while trying to proxy request /add-subscriber from localhost:8000 to http://localhost:9000 (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)
这就是我在请求中得到的
尝试代理到:localhost:8000 / add-subscriber
时发生错误
这就是我的gatsby-config.js
文件中的内容
developMiddleware: app => {
app.use(
"/.netlify/functions",
proxy({
target: "http://localhost:9000",
pathRewrite: {
"^/\\.netlify/functions": ""
},
logLevel: "debug"
})
)
}
这是我发出请求的地方
onSubmit(values) {
fetch('/.netlify/functions/add-subscriber')
.then(resp => resp.json())
.then(resp => console.log(resp))
.catch(e => {
console.error(e)
})
}
我尝试了以下几个示例,但没有一个对我有用。我还关闭了可能正在使用端口的所有程序。从浏览器测试URL(http://localhost:9000/add-subscriber)正常。直接获取URL也可以正常工作。可能是什么问题?
答案 0 :(得分:0)
我注意到的第一件事是您的pathRewrite
与文档中的示例不匹配,您正在使用"^/\\.netlify/functions"
,而文档使用"/.netlify/functions/"
。解决方法可以这么简单吗?
如果通过curl
或直接在浏览器中加载http://localhost:8000/.netlify/functions/add-subscriber,会发生什么情况?那应该告诉您配置是否正常工作。
答案 1 :(得分:0)
切换到target: 'http://[::1]:9000',
帮了我大忙