我有一台主机,可以提供许多Web应用程序(不是基于node.js的)。它使用不同的端口执行此操作。这意味着例如以下应用程序处于活动状态:
下一步,我有一个基于node.js的webapp(在端口80上运行),我想将其用作路由器。当有人导航到http:// localhost / app / app1时。我希望它导航到http:// hostname:3000。使用简单的重定向,这相对简单。但是,我想保留URL http:// localhost / app / app1。有人可以指出我使用node.js / express进行这项工作的方法吗?
我的路由逻辑看起来像这样(伪代码)。
app.route('/app/:appName')
.get(appEngine.gotoApp);
appEngine.gotoApp = function(req, res) {
redirectToApp logic
}
如果您使用Express,则可以尝试使用cli express应用程序生成器创建应用程序。
它创建一个快速应用程序,并将其与模块导出一起返回。
在server.js文件中,它传递服务器实例的侦听功能(快速应用程序对象)。
您可以创建更多服务器对象,并使用不同的端口监听不同的应用程序。
var server = http.createServer(app);
server.listen(port);
var server2 = http.createServer(app2);
server2.listen(port2);
如果要基于URL指向其他应用,则可以实例化Express路由器而不是Express对象。
var app1 = express.Router();
然后,您可以使用经典的get或post或其他方法将所有路由设置到该对象中。
现在,您可以将路由器作为主要Express应用程序的中间件传递。
app.use( "app1/", app1 );
您还可以将快速应用程序传递给中间件,而不是路由器对象,以通过不同的URL和端口服务器侦听来执行该应用程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句