使用URL参数中的信息解析URL

时间:2019-01-08 19:19:07

标签: node.js express

我一直在工作中被一个Node.js项目吸引,但我不是Node开发人员。我的第一个任务是从URL参数解析要存储的URL。这是需要发生的事情:

原始URL包含URL参数“ siteName”,如下所示:

https://example.com/s/Store/?siteName=SLUG

上面带有参数的网址将解析为

https://example.com/s/Store/SLUG

该项目在Express ^ 4.3.0上运行。

我一直在研究Node文档,但是我不确定从哪里开始。

2 个答案:

答案 0 :(得分:1)

我建议您研究Express

解决您的问题很容易。首先,您需要建立一个中间件来侦听/ s / Stores路由的请求。然后解析查询参数,并获取siteName键的值。最后,使用res.redirect方法为/ s / Store / SLUG路由运行逻辑。

解决方案看起来像

app.get('/s/Stores', (req, res, next) => {
  const query = req.query;
  const siteName = query.siteName;

  res.redirect('/s/Stores/' + siteName);
});

app.get('/s/Stores/:siteName', (req, res, next) => {
  const siteName = req.params.siteName;

  if (siteName === 'SLUG') {
    // do something
  }

  // do something else
});

答案 1 :(得分:0)

假设Store路由是您要使用参数查看的页面,如果您使用的是url查询参数,请使用第一个示例,它与第一个问题匹配。

如果您尝试不查询而获取网址参数,请使用第二个示例。

//https://example.com/s/Store/?siteName=SLUG

app.get('/Store', function(req, res){
  let siteName = req.query.siteName,
});

//https://example.com/s/Store/SLUG/
app.get('/Store/:slug', function (req, res) {
   let slug = req.params.slug,
});