Маршруты OpenShift с путями приводят к игнорированию подпунктов

relief.melone спросил: 28 апреля 2018 в 09:03 в: rest

В настоящее время я использую OpenShift для депоулинга node.js-приложения. Это приложение предоставляет REST api.

Пока я не использую путь в Openshift, и маршрут похож на

www.app.host.com

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

www.host.com/app /

, весь трафик будет отправлен на корневой путь приложений , Таким образом,

www.host.com/app/request/something

все равно приведет к тому, что трафик окажется на странице приветствия. Есть ли у вас какие-либо идеи о том, как заставить OpenShift принимать подпрограммы?


1 ответ

Есть решение
relief.melone ответил: 04 мая 2018 в 04:11

Хорошо, вот что вам нужно сделать. Вы должны включить свой путь в приложение node.js.

Итак, если вы используете / yourapp / (обязательно включите косую черту в конце), вам придется изменить свои маршруты с

/ api / dosomething to / yourapp / api / dosomething

В моем случае я использовал переменную среды, как я это делал, t хотите жестко указать путь в моем приложении. поэтому теперь это выглядит примерно так:

var requestPath = (process.env.ROUTE_PATH || '') + '/request';
var authPath = (process.env.ROUTE_PATH || '') + '/auth';app.use(requestPath, routesRequest);
app.use(authPath, routesAuth);

После этого просто установите переменную среды ROUTE_PATH в развертывании на / yourapp, и вам будет хорошо идти