Node. 表达式获取 / 之后的所有内容



基本上,我正在尝试制作一个URL缩短器。因此,您输入一个URL,您将获得一个缩短的版本。所以我做example.com/generate/InsertUrlHere.但是,如果我做类似example.com/generate/InsertUrl/Here的事情,它不起作用。

目前,我有

app.get('/generate/:string', async (req, res) => {
    res.send(req.params.string)  
})

现在我知道上面的代码只接受 1 个输入,但在 URL 中我可以拥有从普通的旧google.com到类似 google.com/1/2/3/4/5/6/7 的任何地方。

那么除了

app.get('/generate/:string/:string2', async (req, res) => {
    res.send(req.params.string+'/'req.params.string2)  
})
app.get('/generate/:urlToShorten(*)', (req, res, next) => {
    console.log(req.originalUrl);
    console.log(req.params.urlToShorten);
  });

拨打 https://localhost:3000/generate/https://google.com 时

req.originalUrl/generate/https://google.com

urlToShortenhttps://google.com

为什么不发送编码的 URL,这样就不会发生导致终结点检测出现问题的/。使用 encodeURIComponent(( 对其进行编码,以便用转义字符替换某些字符,然后对其进行解码以使用 decodeURIComponent(( 使用

您可以使用正则表达式来获取许多字符串,

例如
Route: /generate/:strings(*)
Path: /generate/string1/string2/string3/string4
Key: strings, Value: string1/string2/string3/string4

然后你可以使用"/"作为分隔符,以便获取数组中的每个字符串

相关内容

最新更新