SailsJS Custom API Hook - поддомен - PullRequest
       4

SailsJS Custom API Hook - поддомен

0 голосов
/ 07 декабря 2018

Недавно я попытался развернуть приложение SailsJS в среде AWS, и поэтому я настроил соответствующие промежуточные и промежуточные файлы.

Одна постоянная проблема, с которой я столкнулся, была при запуске приложения с:

sails lift --staging

Я заметил, что либо получал повторяющиеся перенаправления, либо он вообще не был доступен.

После некоторого дальнейшего поиска я наткнулся на этот код, расположенный в файле api/hooks/custom/index.js:

// Next, if we're running in our actual "production" or "staging" Sails
// environment, check if this is a GET request via some other subdomain,
// for example something like `webhooks.` or `click.`.  If so, we'll
// automatically go ahead and redirect to the corresponding path under
// our base URL, which is environment-specific.
// > Note that we DO NOT redirect virtual socket requests and we DO NOT
// > redirect non-GET requests (because it can confuse some 3rd party
// > platforms that send webhook requests.)
var configuredBaseSubdomain;
try {
    configuredBaseSubdomain = url.parse(sails.config.custom.baseUrl).host.match(/^([^\.]+)\./)[1];
} catch (unusedErr) { /*…*/}
if ((sails.config.environment === 'staging' || sails.config.environment === 'production') && !req.isSocket && req.method === 'GET' && req.subdomains[0] !== configuredBaseSubdomain) {
    sails.log.info('Redirecting GET request from `'+req.subdomains[0]+'.` subdomain...');
    return res.redirect(sails.config.custom.baseUrl+req.url);
}//•

Я пытался расспросить о каналах IRC и ссылках Gitter.im, но мои запросы «затерялись в шуме», так что я решил просто спросить здесь и оставить дляобсуждение.Нет ли лучшего способа справиться с этим?

Развертывание в среде AWS с URL-адресом http://ec2 -xxx-xxx-xxx-xxx.locale-x.compute.amazonaws.com или просто доступ по IP-адресу оба перехватываются используемым регулярным выражением:

/^([^\.]+)\./

Что делает развертывание довольно трудным, если приложение не находится в корневом маршруте (ха-ха) сайта.Разве нет другого способа справиться с этим?

На данный момент я должен был закомментировать это только для того, чтобы мое подготовленное приложение можно было использовать / тестировать.Я также понимаю, что это могло быть выполнено с помощью параметра, переданного при первоначальном создании моего проекта с помощью проекта sails-generate , но я еще не отследил его

1 Ответ

0 голосов
/ 14 января 2019

я столкнулся с той же проблемой.Похоже, мы оба использовали генератор одновременно, что привело к коду, включая приведенное выше регулярное выражение.Теперь он изменяется с этим коммитом, и как только вы меняете код в своем репо на приведенный ниже, он снова начинает работать!

https://github.com/balderdashy/sails-generate/commit/76e2096d8173d474b6152a67ff4cfa08c38e6460

...