首页 文章

在Nodejs的Router文件中公开vs创建对象

提问于
浏览
1

所以,我刚开始使用 expressjs 4.0.0 并遇到了 express.Router() 对象,这非常好 .

问题是,现在我的所有路由都在另一个文件中,如何将对象暴露给路径文件?

serverjs文件:

... var passport = require('passport'); var router = require('./ app / routes.js')(护照); //将无法使用app.use('/',router); app.listen(8080);

routes.js文件:

... var express = require('express'); var router = express.Router(); // expressjs 4.0中的新功能//路由到这里去模块.export = router;

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

2 回答

  • 0

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

    编辑:包括示例

    server.js:

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

    routes.js:

    var express = require('express');
    module.exports = function(app, passport){
    
       var router = express.Router();
    
       // routes go here
       // do stuff with passport
    
       return router;
    
    }
    
  • 4

    这种方式有效

    var express = require('express')
      , home = require(_pathtoyourroutes.js)
    app.get('/', home.index);
    

    //router.js

    exports.index = function(req, res){
        var d = new Date();
      res.render('index', { title: 'Hello world', description:'Hello world this is a awesome site.', stylesheet: 'body.css', jsfile: 'home.js' });
    };
    

相关问题