带路径的OpenShift路由导致忽略子路由

时间:2018-05-22 10:43:17

标签: rest openshift openshift-origin

我目前正在使用OpenShift来解析node.js-Application。此应用程序公开REST api。

只要我不在Openshift中使用路径,路线就像

www.app.host.com

API工作正常。现在我想在一台主机上托管多个应用程序,因为我不想在每次添加新的应用程序时都要签署证书签名请求。但是当我在OpenShift路径中使用路径时,如

www.host.com/app /

所有流量将被发送到应用程序根路由。所以

www.host.com/app/request/something

仍会导致流量在欢迎页面上结束。您有什么想法让OpenShift仍然接受子路由吗?

1 个答案:

答案 0 :(得分:0)

好的,这是你必须要做的。您必须将您的路径包含在node.js应用程序中。

因此,如果您正在使用/ yourapp /(请务必在末尾包含斜杠),则必须更改路线

/ api / dosomething / yourapp / api / dosomething

在我的情况下,我使用了环境变量,因为我不想将路径硬编码到我的应用程序中。所以现在基本上看起来像这样

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 ,就可以了