Node.js Express получает свойства приложения в роутере - PullRequest
0 голосов
/ 26 июня 2018

Есть ли простой способ получить доступ к параметрам, установленным с помощью app.set () из контекста маршрутизатора?Я надеялся, что router.get сработает, но очевидного пути не существует.

1 Ответ

0 голосов
/ 26 июня 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...