2016-03-21 122 views
0

我很难将导入我的路由器文件到主项目文件。无法从模块导入功能

以前我只需要依赖关系和导出路由器变量,然后我需要我的文件,它很好。但是,我想用在主文件中定义的依赖关系,所以我有这样的事情:

//router file 
module.exports = function(router, request, f, moment, io) { 
//blah 
} 

//server file 
//all dependencies properly required 

var indexRouter = require('./routes/index')(express.Router(), request, f, moment, io); //doesn't work 
app.use('/', indexRouter); 
+0

只是好奇,为什么你导入公共资源(如要求,那一刻,表达,路由器等)与仅仅有“要求( 'xx')'在路由器文件中? –

+0

我需要在多个文件中具有相同的依赖关系(socket.io),其余的只是在一个地方。它需要较少的写作,并应该给出相同的结果。 –

+0

你有错误吗?或者它只是不起作用? – skarface

回答

0

为了使这项工作我只需要在路由器的文件返回路由器。

router.js

module.exports = function(router, request, f, moment, io) { 
    //routes 
    return router; //returning router at the end of a function 
} 

server.js

app.use('/', require('./routes/index')(express.Router(), request, f, moment, io)); //works