你如何将东西传递给路由器? 代码

问题描述

我一直在研究端点,但我希望它像 bot/:id/Vote

一样工作

我如何将 ID 传递到该路由器,使其类似于 https://example.com/bot/512333785338216465/Vote

代码

const Vote = require("../routers/voting");
app.use("/bot/:id/Vote",Vote);

解决方法

创建新的路由器对象时需要使用 mergeParams(default: false) 选项。

保留来自父路由器的 req.params 值。如果父级和子级的参数名称冲突,则子级的值优先。

所以工作代码是:

const express = require('express');
const app = express();
const { Router } = express;

const vote = Router({ mergeParams: true });
vote.get('/',(req,res) => {
  console.log(req.params); //=> { id: '512333785338216465' }
  res.sendStatus(200);
});

app.use('/bot/:id/vote',vote);

app.listen(3000,() => console.log('Server started at http://localhost:3000'));

软件包版本:"express": "^4.17.1",