【问题标题】:Trouble retrieving data from 'req.params' in Express app从 Express 应用程序中的“req.params”检索数据时遇到问题
【发布时间】:2023-03-11 12:20:02
【问题描述】:

我正在尝试从 Express 应用中获取我的数据模型 ID。在我的 app.js 中我设置了

app.use('/grades/:id/students', studentRoutes);

所以当我在任何路由 .js 文件中使用 /:student_id/show 时,路由应该像 /grades/:id/students/:student_id/show 实际上确实如此,但问题是当我尝试获取 req.params.id 时,我得到的是 null 而不是 id。我能够毫无问题地获得req.params.student_id

这是我的学生路线

router.get('/:student_id/show', (req, res) => {
  Student.findById(req.params.student_id, (err, foundStudent) => {
    try {
      res.render('students/show', {
        student: foundStudent,
        path: 'student',
        class_id: req.params.id,
      });
      console.log(req);
    } catch (err) {
      res.redirect('back');
      console.log(err);
    }
  });
});

有人请帮帮我!

【问题讨论】:

标签: javascript node.js mongodb express mongoose


【解决方案1】:

为了访问父路由器的参数,需要在创建子路由器时将mergeParams设置为true

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2016-05-24
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多