Насколько мне известно, сам маршрутизатор не имеет доступа к объекту 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
к маршрутизации.