域之前的URL参数

时间:2016-01-17 20:07:21

标签: node.js url express routes

我对路由和网址有一个疑问。我的问题是关于域本身之前的url中的参数或查询。例如:

http://param.example.com/

我问这个问题,因为我使用的是ExpressJS,你只在域名之后定义你的路线,如:

http://example.com/yourRoute

哪个会被添加到网址的末尾。我想要的是能够在域本身之前存储参数。

提前谢谢!

FYI

我知道如何使用参数和查询,我只是不知道如何在域名之前插入它们。

3 个答案:

答案 0 :(得分:0)

也许这个vhost中间件对您的情况很有用:https://github.com/expressjs/vhost#using-with-connect-for-user-subdomains

否则类似的方法可行:创建一个中间件函数,解析url并将提取的值存储在请求的属性中。

答案 1 :(得分:0)

您可以创建一个if语句,该语句可以通过包含请求域的快速req.headers.host变量查看子域。例如:

-- google.com/anything/another
req.headers.host => "google.com"

-- docs.google.com/anything/
req.headers.host => "docs.google.com"

因此,如果请求与您想要的表单不符,您可以在路线中解决此问题。

Next()

这可以扩展很多!包括为实现此目的而创建了许多包的事实(例如。subdomain)免责声明,您可能需要考虑使用router.get('/', function(req, res, next) { if (req.headers.host == "sub.google.com") { //Code for res goes here } else { //Moves on to next route option b/c it didn't match next(); } }); 和一些网址。

答案 2 :(得分:0)

所以我会使用像

这样的东西
router.get('/myRoute', function(req, res,next) {
  req.headers.host == ":param.localhost.com"
  //rest of code
}

我想我明白你在说什么,但我会做一些测试,并进一步阅读我的请求的标题。

编辑:现在看来继续这个似乎是一件不必要的麻烦,因为我现在也在使用React-router。所以暂时我会在/之后使用我的参数。 我感谢你的时间和答案。祝你今天愉快!