gpt4 book ai didi

node.js - 在expressjs中捕获复数路线

转载 作者:太空宇宙 更新时间:2023-11-03 22:04:29 24 4
gpt4 key购买 nike

在expressjs中,我使用如下所示的路由;

app.use('/game', require("./routes/game"));

在文件/routes/game.js

const express = require('express');  
var router = express.Router();

router.get("s", function (req, res, next) {
res.send("GAME LIST");
})
router.get("/:gameurl", function (req, res, next) {
res.send(`GAME: ${req.params.gameurl}`);
})

module.exports = router;

我想捕获 /games/game/wow
我怎样才能分别处理这两条路线?

最佳答案

如果您希望 /games/game 都转到您的路由器,而不是任何其他顶级路径,那么有多种方法可以指定它。您可以看到它们的描述here in the doc 。例如,您可以使用正则表达式或传递多个字符串。在本例中,我将向您展示多个字符串:

 app.use(["/game", "/games"], require("./routes/game"));

对于路由路径,您可以传递单个字符串、路径模式(正则表达式的 Express 子集)、正则表达式或包含这些内容任意组合的数组。

如果您希望能够区分路由器中的 /game/games ,那么您必须检查 req.originalUrl 看看是哪一个导致它转到你的路由器,在我看来,这首先就违背了路由的部分目的。

因此,将两个单独的顶级路径发送到同一路由器并在路由器内以不同方式路由它们并不是一种适合 Express 的设计。就我个人而言,我要么改变路径设计,这样就不会发生这种情况,要么使用两个路由器,因为这更适合路由器机制。

关于node.js - 在expressjs中捕获复数路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58123387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com