如何安装express.js子应用程序?
我有几个应用程序,我试图合并成一个单一的“套件”:2个应用程序是独立的,一个只是一个身份validation层(FB连接使用everyauth)。 我想要这样设置:
- / – (家庭)列表的应用程序
- / auth – login任何应用程序
- / app1 – 需要通过/ authlogin才能访问
- / app2 – (相同)
我已经考虑离开app1和app2独立,顶层是一个代理,但我认为这将是很难分享他们之间的身份validation系统。 虚拟主机(通过连接)可能工作,但我不一定需要每个DNS的子域名。 所以相反,我想主要的应用程序是身份validation层,其他人“安装”到那个,每个应用程序的基本path设置为一个子path。 (在快速指南中提到了基本path,但没有很好的logging。)
他们都使用MongoDB,auth层使用connect-mongodb进行会话,所以我希望他们能够在他们之间共享整个auth / session层。
Stephen写道,在另一个主题“如何在安装的快速应用程序中共享会话”
我有一个相当复杂的基于快递的Web应用程序,它被分成几个子应用程序,这些应用程序也是快速应用程序(使用app.use())…
那么如何使用app.use()
来挂载一个子应用? 我只是试图使用var subApp = require('./subapp/app.js')
,而listen()
只能在子应用程序中运行! module.parent
! module.parent
(所以不作为一个子应用程序)...但似乎加载所有的子应用程序的path直接进入父应用程序。 我已经尝试使用app.set('basepath', '/subapp/')
app.basepath = '/subapp/'
等设置basepath
,在子应用程序本身和父应用程序中,但它doesn似乎没有任何效果。
像这样安装应用程序使得expression令人难以置信的灵活性,但目前还不清楚如何做到这一点…任何build议将非常欢迎! (如果有人为此付出努力,我很乐意分享我的每一次实施的经验教训。)
app.use(uri, instanceOfExpressServer)
只要确保你不要打电话。
另一种方法是使用require("cluster")
并在一个主机上调用所有应用程序,以便共享相同的端口。 然后只需要路由到“只是工作”
不知道这是否有助于你,但我正在寻找我的API路线的前缀。 我做的是,当我初始化路由器时,我添加了安装path。 所以我的configuration看起来像这样
//Default configuration app.configure(function(){ app.use(express.compress()); app.use(express.logger('dev')); app.set('json spaces',0); app.use(express.limit('2mb')); app.use(express.bodyParser()); app.use('/api', app.router); app.use(function(err, req, res, callback){ res.json(err.code, {}); }); });
调用路由器时注意'/ api'