Express Nested Router не вызывает подфункции - PullRequest
0 голосов
/ 19 июня 2019

У меня есть следующие вызовы router.use в одном из моих маршрутизаторов

router.use("/:collection/", (req) => {
    return require(`./${req.params.collection}`);
});

, и в этом примере вызывается example.js

example.js:

const header = require("../../header"); //gets our header that declares everything

const router = header.express.Router(); //makes our router for collections requests


console.log("123");


///The Following is when a name is requested
router.get("/test", (req, res, next) => {
    console.log("test");
    res.json({msg:"hi"});
    next();
});


module.exports = router; //makes our router avialable

вы ожидаете, когда:

http://localhost:3000/api/example/test

- это запрос на запись в консоли чего-то такого:

123
test

и я получил бы ответ:

{msg:"hi"}

Вместо консоли пишется просто:

123

записано и ответа нет.

Кажется

 router.get

в example.js никогда не вызывается, может кто-нибудь сказать мне, почему?

1 Ответ

0 голосов
/ 20 июня 2019

Я исправил это вместо

router.use("/:collection/", (req) => {
    return require(`./${req.params.collection}`);
});

Я использую

router.get("/:collection", (req, res) => {
  //this is my other call that will do stuff in the parent file
  //we don't call next because it is already matched, otherwise we call next
});

router.use("/:collection/", (req, res, next) =>{ //says if it gets here pass on the info
  router.use("/:collection/", require(`./${req.params.collection}`)); //then route
  next();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...