是否有一种简单的方法可以从路由器的上下文访问使用app.set()设置的参数?我希望router.get可以工作,但是似乎没有明显的方法。
答案 0 :(得分:1)
据我所知,路由器本身无法访问app
对象。但是,您可以通过app
从路由器上的任何请求处理程序中获取req.app
对象。
const express = require('express');
const app = express();
app.set("greeting", "hello");
const router = express.Router();
router.get("/", (req, res) => {
res.send(req.app.get("greeting")); // outputs "hello"
});
app.use(router);
app.listen(80);
之所以这样工作,是因为路由器实际上并不知道它是app
的一部分,并且不一定仅由一个app
对象使用。实际上,它甚至可以由多个单独的应用程序对象使用。相反,是app
知道其路由器是谁,以及何时路由到路由器,它在准备req.app
对象进行路由时会设置req
。