NodeJS使用来自不同文件的模块

假设我想configuration和使用passport模块。

在我的app.js ,我有如下的最小模块configuration:

 passport = require('passport'); // load module app.use(passport.initialize()); // initialize passport app.use(passport.session()); // use session 

现在,我想为我的应用configuration路由。 但是,我有一个单独的文件,即./lib/router.js 。 问题是我是否应该将我的configuration的passportvariables传递给该文件,或者require再次在该文件中的护照模块。

为了显示:

 // **app.js** router = express.Router() // declare router // option (A) Do I have to pass the passport variable to be using that same variable I have already defined in app.js? app.use(require('./lib/router')(router, passport)) // **lib/router.js** // option (B) or, can I just 'require' another passport module and affect the same module said in app.js? passport = require('passport') module.exports = (router) -> router.get('/authenticate', passport.authenticate('local')) 

我希望解释清楚。 我还想知道在多个位置使用模块的情况下(“ mongoose是不同文件要求它声明模型的另一个模块)的“首选”练习。

提前致谢。

护照包出口护照类的一个实例,所以如果你这样做:

 var passport = require('passport'); 

在你的路线中,你将使用相同的实例。

从Passport库的源代码:

 exports = module.exports = new Passport();