Node.js 域之前的URL参数

Node.js 域之前的URL参数,node.js,url,express,routes,Node.js,Url,Express,Routes,我有一个关于路由和URL的问题。我的问题涉及域本身之前url中的参数或查询。例如: -- google.com/anything/another req.headers.host => "google.com" -- docs.google.com/anything/ req.headers.host => "docs.google.com" 我问这个问题是因为我在使用ExpressJS,而您只在域本身之后定义路由,如: 它将被添加到url的末尾。我想要的是能够在域本身之前存

我有一个关于路由和URL的问题。我的问题涉及域本身之前url中的参数或查询。例如:

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

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

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

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

提前谢谢你

供参考


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

也许这个vhost中间件对您的情况很有用:


否则,类似的方法也会起作用:创建一个中间件函数,解析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();
        }
    });

这可以扩展很多!包括已经创建了许多包来完成此(例如)免责声明这一事实,您可能需要说明在一些URL中使用
www.

,因此我将使用以下内容

router.get('/myRoute', function(req, res,next) {
  req.headers.host == ":param.localhost.com"
  //rest of code
}
我想我理解你的意思,但我会做一些测试,并进一步阅读我的请求标题

编辑:现在继续这样做似乎是不必要的麻烦,因为我现在也在使用React路由器。因此,目前我只打算在/,之后使用我的参数。 谢谢你的时间和回答。祝你今天愉快