2014-08-30 43 views
0

我正在試圖中間件添加到我的應用程序以下錯誤:快遞Router.use需要回調函數的錯誤

throw new TypeError('Router.use() requires callback function'); 

MyMiddleware.js

module.exports = function(options) { 
    var err = checkOptions(options); 
    if(err) { 
    throw err; 
    } 

    var middleware = function(req, res, next) { 
     // do something here 
    } 

    return middleware; 
} 

這是怎麼了加我的中間件:

var MyMiddleware = require('./server/middlewares/MyMiddleware'); 
var middleware = MyMiddleware(config); 
router.use('/path', middleware); 
app.use('/', router); 

我使用express 4.x版。

+0

這是發生在你拋出錯誤嗎? – Jordonias 2014-08-30 05:50:26

+0

@Jordonias我在服務器啓動時出現這個錯誤 – user123 2014-08-30 05:51:50

+0

@Jordonias不,不是因爲拋出err – user123 2014-08-30 05:52:17

回答

0

您將模塊定義爲函數,您必須調用它。

var MyMiddleware = require('./server/middlewares/MyMiddleware')();

+0

它不起作用 – user123 2014-08-30 10:04:36

+0

@ user123噢,好的,你實際上正確地使用它,忽略我的答案,你可以在'router.use'之前使用'console.log'中間件變量。 – eguneys 2014-08-30 10:13:10

+0

它正在工作。 – user123 2014-08-30 10:29:24

相關問題