如何访问express.js中路由器文件中以前的参数



假设我在应用程序文件中创建了一个这样的路由器:

const usernameRouter = express.Router();
app.use('/:username', usernameRouter);

当我在路由器文件中时,如何访问:username变量?

没有内置的方法可以从子路由中获取该参数。你有几个选择:

1(使用请求原始URL

在子路由处理程序中,从req.originalUrl中解析它。


2(将/:用户名移动到路由声明中

发送到路由器时不要使用通配符。相反,只需这样做:

app.use(usernameRouter);

然后,在usernameRouter内部,执行以下操作:

router.get("/:username/something", ...);

因此,您可以使用req.params.username来访问它。


3(创建中间件以捕获req.params.username

使用中间件功能将参数设置到可以到达的位置:

app.use('/:username', (req, res, next) => {
req.username = req.params.username;
usernameRouter(req, res, next);
});

然后,您可以从子路由中的req.username访问它。

最新更新