我对路由和网址有一个疑问。我的问题是关于域本身之前的url中的参数或查询。例如:
我问这个问题,因为我使用的是ExpressJS,你只在域名之后定义你的路线,如:
哪个会被添加到网址的末尾。我想要的是能够在域本身之前存储参数。
提前谢谢!
FYI
我知道如何使用参数和查询,我只是不知道如何在域名之前插入它们。
答案 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。所以暂时我会在/之后使用我的参数。 我感谢你的时间和答案。祝你今天愉快!