Node.js Express: require/use one app within another
我正面临以下情况。为了进一步调整我的软件开发,我编写了一些独立的标准模块。以基于Express和Passport的登录模块为例,该模块允许用户使用各种社交服务登录。该模块还包含用于用户管理,登录,注册,配置文件等的UI。
现在,我要做的就是将Auth应用程序文件夹(包含Express应用程序,包括其所有路径,视图,模型,设置和依赖项)放到另一个Express应用程序(例如CMS)中然后用
我将如何去做?以及我该如何处理命名空间问题?我可以将
预先感谢,
法比安
认为我找到了答案。因此,我找到了这个问题,也发现了这个问题。猜猜我的术语不对。
我通过做几件事解决了我的问题。首先,我将所有路由和url更改为" namespaced "(不是,但这确实可以做到)。现在,所有路由都在其前面带有
接下来,我从我的app.js中删除了服务器部分。因此,代替做:
require('http').createServer(app).listen(app.get('port'));
我只是做:
module.exports = app;
然后向应用程序对象添加一些自定义方法:
1 2 | app.isLoggedIn = auth.isLoggedIn; app.notLoggedIn = auth.notLoggedIn; |
然后,在我的根应用程序中,我只需执行以下操作即可将
1 2 3 4 5 6 7 8 | var auth = require('./vendor/auth/app'); var app = express(); app.configure(function() { app.use(auth); // use our auth app // do a lot of root-app related stuff... }); |
要做的事情:
我的
1 2 3 4 5 6 7 8 9 10 | module.exports = function(config) { var app = express(); app.set('config', config); // various app settings, routes, etc // return app so it's available in my root. return app; } |
我希望这会有所帮助,如果您需要更多信息,我会看看是否可以将一些代码发布到要点上。请让我知道!