2016-03-21 120 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