【问题标题】:How to get params in routing MERN?如何在路由 MERN 中获取参数?
【发布时间】:2021-09-18 16:25:21
【问题描述】:

设置动态路由后,我在尝试通过 ID 从 MongoDB 获取项目时遇到了很多麻烦。 URL 设置如下:

http://localhost:3000/paprogram/:_id`
http://localhost:3000/paprogram/60bfbf12f8d33aef9ae4ebb9`

我正在尝试从参数中获取 _id,以便我可以使用它来查找数据库中的特定数据。它工作得很好,如下面的硬编码。但是获取 _id 的正确 req 调用是什么?

PaProgramsDetailsRouter.js:

router.get('/', auth, async (req, res) => {
  try {
    // get school by id
    const PaProgramDetail = await PaProgram.find({
      _id: '60bfbf12f8d33aef9ae4ebb9',
      //_id: req.params._id,
      // id: req.this.props.match.params._id,
    });
    res.json(PaProgramDetail);
  } catch (err) {
    console.error(err);
    res.status(500).send();
  }
});

这是在 index.js 中设置 paProgramDetailRouter 路由的方式:

app.use('/paprogram/:_id', require('./routers/paProgramDetailsRouter'));

【问题讨论】:

    标签: reactjs express parameters routes


    【解决方案1】:

    这应该可以工作

    req.params._id
    

    【讨论】:

    • 我试过那个,但没有用。通过控制台打印它并显示“未定义”。
    • req 返回什么?因为这应该工作
    • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
    • 当我使用 console.log(req.originalUrl) 时,它返回“/paprogram/:_id/”而不是“/paprogram/60bfbf12f8d33aef9ae4ebb9”。
    猜你喜欢
    • 1970-01-01
    • 2013-04-30
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2018-06-30
    相关资源
    最近更新 更多