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的passport
variables传递给该文件,或者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();