繁体   English   中英

域之前的URL参数

[英]URL parameters before the domain

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

http://param.example.com/

我问这个问题是因为我使用的是ExpressJS,而您只能在域本身之后定义路由,例如:

http://example.com/yourRoute

它将被添加到URL的末尾。 我想要的是能够在域本身之前存储参数。

先感谢您!

费耶

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

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

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

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

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

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

所以工作过这个在你的路线,你可以拨打Next()如果请求不符合你想要的形式。

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();
        }
    });

这可以扩展很多! 包括已经创建了许多软件包来完成此操作的事实(例如subdomain )。免责声明您可能需要考虑www.的使用www. 与一些网址。

所以我会用类似

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

我想我理解您在说什么,但是我将对我的请求标题进行一些测试和进一步的阅读。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM