уроки - web разработка на node.js и express



Экспресс-маршрутизатор с неопределенными параметрами с router.use при разбивке по файлам (1)

Я не уверен, что это ошибка в Express, или если я просто делаю что-то неправильно (возможно, последнее), но я нахожу, что req.params сохраняет только параметры на последнем шаге запроса. Чтобы продемонстрировать, что я имею в виду:

Рабочий пример:

router.get('/:id/test', function(req, res){
    // req.params.id is not undefined
});

Не работает :(

Файл 1:

router.use('/:id', require('./file2'));

Файл 2:

router.get('/test', function(req, res){
    // req.params.id is undefined?!
});

Теперь ... приведенное выше кажется мне совершенно нелогичным, поскольку генератор Express определяет пути выше, и он все равно должен быть определен в пути где-то. Неужели я все равно могу получить доступ к «id»?

Так что, в общем, я что-то упускаю? Является ли это преднамеренным / документировано? FWIW Я использую Express v4.12.0.

Отказ от ответственности: файл, вероятно, не имеет значения, но лучше быть в безопасности, чем сожалеть.


Когда вы создаете свой Router в File 2 , вам нужно сказать ему, чтобы наследовать параметры от родителей.

var router = express.Router({mergeParams: true});

http://expressjs.com/api.html#router





routes