采用快速路由与斜杠在处理请求参数

问题描述 投票:5回答:1

我目前正在使用快车缩短网址的应用程序。我希望用户能够输入一个URL是这样的:

https://www.exampleurlshortener.com/new/https://www.google.com

问题是,每当我尝试使用快速只会提取的“https:”指定的参数部分,一切都被丢失,因为2个反斜线被注册为新航线后:

app.get('/new/:url', (req, res) => {
  console.log(req.params.url) // outputs 'https:'

我想过指定每个部分作为一个新的参数,但如果inner是空白这最终抛出一个404,我需要检查,如果内部是空的使用此方法,否则用户将能够键入https:/something/www.google.com

app.get('/new/:prot/:inner/:address', (req, res) => {
  // throws 404 on valid addresses

有没有办法解决这个问题是我缺少一个简单的方法?在完整的URL将在请求地方检查?或者可以忽略的参数反斜线?

node.js express
1个回答
5
投票

您可以使用an expression为您的网址占位符:

app.get('/new/:url(.*)', (req, res) => {
  console.log(req.params.url) // will output 'https://www.google.com'

推荐问答