我目前正在使用OpenShift来解析node.js-Application。此应用程序公开REST api。
只要我不在Openshift中使用路径,路线就像
www.app.host.com
API工作正常。现在我想在一台主机上托管多个应用程序,因为我不想在每次添加新的应用程序时都要签署证书签名请求。但是当我在OpenShift路径中使用路径时,如
www.host.com/app /
所有流量将被发送到应用程序根路由。所以
www.host.com/app/request/something
仍会导致流量在欢迎页面上结束。您有什么想法让OpenShift仍然接受子路由吗?
答案 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 ,就可以了