#javascript #proxy #netlify #rollup #sapper
#javascript #прокси #netlify #свертка #sapper
Вопрос:
Я использую шаблон накопительного прокси-сервера Sapper и не могу понять, как использовать прокси /.netlify/functions
для localhost:9000
. Я пробовал http-proxy-middleware
в setupProxy.js файл, но я не уверен, где ссылаться на этот файл, учитывая, что сервер разработки Sapper, похоже, не настраивается с помощью Rollup?
У меня есть функция в /src/functions/&et-code.js
, и я использую Netlify lambda для ее тестирования:
packa&e.json
...
"scripts": {
"dev": "sapper dev",
"lambda:dev": "netlify-lambda serve src/functions",
...
netlify.toml
[build]
command = "npm run build"
functions = "lambda"
Я могу протестировать свою функцию на https://localhost:9000/&et-code
, и она работает нормально. Однако в моем приложении у меня есть функция внутри файла utilities.js
, которая пытается сделать запрос к /.netlify/functions/&et-code.
export const &etCode = (obj) =&&t; {
return axios
.post('.netlify/functions/&et-code', JSON.strin&ify(obj))
.then((response) =&&t; {
return response.data
})
.catch(function (error) {
console.error(error)
return null
})
}
Когда я запускаю свое приложение ( npm run dev
) и вызывается эта функция, это приводит к ECONNREFUSED
ошибке, поскольку оно пытается вызвать http:.netlify/functions/&et-code
.
Ответ №1:
Я пытался сделать то же самое в проекте Eleventy, пока не понял, что в этом нет необходимости. Вместо того, чтобы использовать netlify-lambda и пытаться проксировать порт 9000, просто используйте вместо этого Netlify Dev.
Установите интерфейс командной строки Netlify:
npm install netlify-cli -&
затем запустите Netlify Dev из папки вашего проекта:
netlify dev
Он запустит ваше приложение и обработает ваши http-запросы к /.netlify/functions/&et-code
, так что вы сможете избежать проблем с прокси, а также проблем с CORS.