暴露在Nodejs的路由器文件中创建对象 [英] Expose vs Creating object in Router file of Nodejs

查看:311
本文介绍了暴露在Nodejs的路由器文件中创建对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我刚开始使用 expressjs 4.0.0 ,并碰到 express.Router()这是非常好的。

So, I just started with expressjs 4.0.0 and came across the express.Router() object, which is really nice.

问题是,现在我所有的路线都在另一个文件中,如何将对象公开到路由文件?

Problem is, now that all my routes are in another file, how do I expose an object to the routes file ?

serverjs文件:

serverjs file:


...
var passport = require('passport');
var router = require('./ app / routes.js')(护照); //不会工作
app.use('/',路由器);
app.listen(8080);

...
var passport = require('passport');
var router = require('./app/routes.js')(passport); //WILL NOT WORK
app.use('/', router);
app.listen(8080);

routes.js文件:

routes.js file:


...
var express = require('express');

var router = express.Router(); // expressjs 4.0中的新功能

//路由到这里

module.export = router;

...
var express = require('express');
var router = express.Router(); //new feature in expressjs 4.0
//routes go here
module.export = router;

那么我应该如何在路由器文件中访问护照对象?我应该创建一个新对象还是有一种方法将server.js对象传递给router.js文件?

So, how should I access passport object in router file ? Should I create a new object or is there a way to pass the server.js object to router.js file ?

推荐答案

你可以将您的router.js包装在接受护照对象作为参数的函数中,并处理路由器的实例化。然后,module.export功能而不是路由器。

You could wrap your router.js in a function that accepts the passport object as parameter and handles the instantiation of the router also. Then, module.export that function instead of only the router.

编辑:包括示例

server.js :

server.js:

var passport = require('passport');
var router = require('./app/routes')(app, passport);
app.use('/', router);
app.listen(8080);

routes.js:

routes.js:

var express = require('express');
module.exports = function(app, passport){

   var router = express.Router();

   // routes go here
   // do stuff with passport

   return router;

}

这篇关于暴露在Nodejs的路由器文件中创建对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆