我有一个中间件,我称之为:
app.use(example({optiona:'abc'}));
我想从中间件功能访问该应用,并执行另一个app.use,如下所示:
module.exports = function (options){
app.use(...);
return function(req, res, next)
next();
}
我知道将应用程序传递给导出的选项,但我想这样做而没有传递它的选项,或者将其设置为全局..
答案 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;
}
路由器允许您设置"子应用程序"因此,他们有自己的路线/中间件。