expressionjs多个应用程序中间件

我有一个简单的网站与两个独立的应用程序(在同一网站,不同的路线),说个人资料的应用程序和产品的应用程序。 我可以让他们的路线,但我想保持在像应用程序单独的目录结构。 我想知道使用一个global.app是不是很好的做法或为每个应用程序创build单独的应用程序?

另外,如果我使用单独的应用程序,我怎么能在多个应用程序之间有一个共同的中间件?

我相信你在expressjs中所做的是设置虚拟主机? 它创build了可以在主应用程序中使用的express和中间件的实例。

这是Github 。

这里是一个Expressjs虚拟主机的例子

 var express = require('express'); var vhost = require('vhost'); /* edit /etc/hosts: 127.0.0.1 foo.example.com 127.0.0.1 bar.example.com 127.0.0.1 example.com */ // Main server app var main = express(); // Vhost app var app = module.exports = express(); app.use(vhost('*.example.com', redirect)); // Serves all subdomains via Redirect app app.use(vhost('example.com', main)); // Serves top level domain via Main server app /* istanbul ignore next */ if (!module.parent) { app.listen(3000); console.log('Express started on port 3000'); } 

还有其他一些软件包。 这里的网站详细介绍了如何设置。

如果你有两个独立的应用程序,我的build议是有两个独立的后端。 这是因为你可能有一天想把一个服务器移到另一个服务器上,或者单独升级它,等等。把代码分开,只是把应用程序的实际情况正式化了。

至于在两个应用程序之间重用中间件,我会说不要这样做。 如果您要在两个应用程序之间重复使用相似的代码,则可以将该function作为子应用程序部署。 这样,这两个应用程序重复使用相同的代码,但具有不同的代码实例。 如果你想学习如何构build子应用程序,你可以阅读我写的关于这个主题的教程( http://handyjs.org/article/your-guide-to-the-dark-arts-of-nodejs-子应用程序 )