Получение req.param undefined в роутере - PullRequest
0 голосов
/ 03 августа 2020

req.params.id показывает undefined внутри маршрутизатора. Я создал один маршрут для comments. Вы можете увидеть ниже код, который я написал в файле app. js. Я могу успешно перейти к маршрутам /campgrounds/:id/comments. Но req.params.id дает мне неопределенное значение. вы можете увидеть изображения ниже для справки

let express = require("express");
let app = express();
let commentRoutes = require("./routes/comments");
...
app.use("/campgrounds", campgroundRoutes);
app.use("/campgrounds/:id/comments", commentRoutes);

enter image description here

Any configuration do I need to add?

let express = require("express");
let router  = express.Router();
router.get("/new", isLoggedIn, function(req, res){
  //find campground by Id
  console.log("req.params.id => "+ req.params.id);
  console.log("===========================");
  console.log("req.originalUrl => "+ req.originalUrl);
res.send("comments new");
});

введите описание изображения здесь

Кроме того, если я использую app.use(commentRoutes); вместо app.use("/campgrounds/:id/comments", commentRoutes);, он работает, но с маршрутами - нет.

1 Ответ

0 голосов
/ 03 августа 2020

Если вы столкнулись с той же проблемой, вам нужно добавить mergeParams в дочерний маршрутизатор, если вы хотите получить доступ к параметрам родительского маршрутизатора.

var express = require("express");
var router  = express.Router({mergeParams: true});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...