从中间件访问express应用程序

时间:2017-01-22 14:01:42

标签: node.js express connect middleware

我有一个中间件,我称之为:

app.use(example({optiona:'abc'}));

我想从中间件功能访问该应用,并执行另一个app.use,如下所示:

module.exports = function (options){
    app.use(...);
    return function(req, res, next)
        next();
}

我知道将应用程序传递给导出的选项,但我想这样做而没有传递它的选项,或者将其设置为全局..

1 个答案:

答案 0 :(得分:0)

您可以尝试查看Express Routers作为选项(read all about it)。

基本上,你可以保持你的第一件作品相同:

app.use(example({optiona:'abc'}));

然后你可以在函数中执行以下操作:

var express = require("express");
var router = express.Router();

module.exports = function(options) {
    // You can declare middleware specific to this router
    router.use(...);

    // You can declare routes specific to this router
    router.get("/foo", ...);
    router.all("/bar", ...);

    // Then just return the router at the end
    return router;
}

路由器允许您设置"子应用程序"因此,他们有自己的路线/中间件。