有没有一种简单的方法可以从路由器的环境中访问使用app.set()设置的参数?我希望router.get可以工作,但似乎没有一个明显的方法。
发布于 2018-06-26 06:51:07
据我所知,路由器本身没有访问app
对象的权限。但是,您可以通过req.app
从路由器上的任何请求处理程序获取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
对象进行路由时设置req.app
。
https://stackoverflow.com/questions/51032670
复制相似问题