У меня есть веб-приложение, интерфейс которого представляет собой приложение React.js, а серверная часть — приложение Node.js, использующее express.js. Я намерен использовать как можно меньше денег для их развертывания, поскольку это личный проект, поэтому я использую Netlify для размещения внешнего интерфейса (бесплатно) и Heroku для размещения серверной части (0,010 доллара США в час).
Моя текущая настройка внешнего интерфейса Netlify поддерживает развертывание для каждой ветки на разных URL-адресах с префиксом ветки, например: feature123
, развернутый на myurl.netlify.com
, будет развернут как feature123--myurl.netlify.com
.
Мне нужны деньги за каждое развертывание серверной части, поэтому я не хочу запускать новые экземпляры серверной части в каждой ветке. Вместо этого я хочу развернуть только один серверный интерфейс и чтобы все мои интерфейсные экземпляры (варианты для каждой ветки) использовали один и тот же серверный экземпляр.
Проблема:
Мне нужно настроить CORS для своей серверной части, и я хочу избежать добавления правил CORS для каждой ветки на внешней стороне. Я ищу правило типа *myurl.netlify.com
, которое распространяется на любой источник, исходящий из моего источника. Как мне этого добиться?
С помощью библиотеки cors вы можете добиться этого, передав Regexp или Array of string/Regexp в параметр origin
, как упоминалось здесь.
Пример может быть таким
cors({
origin: [
'https://myurl.netlify.app',
/^https://[0-9A-Za-z]+--myurl\.netlify\.app$/
],
// ....
})