我有几个应用程序,我正在尝试合并到一个"套件":2个应用程序是独立的,一个只是一个auth层(使用Everyauth为FB Connect).我想这样设置:
我已经考虑过让app1和app2独立,顶层是代理,但我认为在它们之间共享一个auth系统会很困难.虚拟主机(通过连接)可能会起作用,但我不一定要为每个子域创建DNS的子域.所以代替我想主应用程序是在auth层,并且其他"安装"到一个与基本路径上的每个应用程序,以一个子路径设置.(basepath在明确的指南中提到,但没有很好地记录.)
他们都使用MongoDB,auth层使用connect-mongodb进行会话,所以我希望他们能够在它们之间共享整个身份验证/会话层.
在另一个帖子中,"如何在已安装的快递应用程序中共享会话",Stephen写道,
我有一个相当复杂的基于快速的Web应用程序,它被分成几个子应用程序,也是快速应用程序(使用app.use())...
那么如何使用app.use()安装子应用程序?我只是试图使用var subApp = require('./subapp/app.js'),listen()只在子应用程序中运行时! module.parent(因此不是作为子应用程序)...但这似乎将所有子应用程序的路径直接加载到父应用程序中.我试过设置basepath使用app.set('basepath', '/subapp/'),app.basepath = '/subapp/'等等,无论是在子应用程序本身以及从父应用程序,但它似乎并没有产生任何影响.
像这样的挂载应用使得表达非常灵活,但不清楚如何做到这一点......任何建议都将非常受欢迎!(如果有人在努力解决这个问题,我很乐意与我的每一个实施分享经验教训.)
Ray*_*nos 40
app.use(uri, instanceOfExpressServer)
只要确保你不要打电话.listen.
另一种方法是require("cluster")在单个主服务器中使用和调用所有应用程序,以便它们共享同一个端口.然后让路由到"正常工作"
不确定这是否对您有所帮助,但我希望为我的API路线添加前缀.我做的是当我初始化路由器时,我添加了挂载路径.所以我的配置看起来像这样
//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, {});
});
});
Run Code Online (Sandbox Code Playgroud)
在调用路由器时请注意'/ api'
| 归档时间: |
|
| 查看次数: |
13510 次 |
| 最近记录: |