快递获取子域名

时间:2016-09-27 17:26:36

标签: node.js express

有没有办法使用快速路由器来获取子域的变量。

假设我有foo.example.com如何获得foo的输出。

由于

2 个答案:

答案 0 :(得分:4)

在Express 4.x中,您可以使用req.subdomains属性。

// Host: "tobi.ferrets.example.com"
req.subdomains
// => ["ferrets", "tobi"]

参考:https://expressjs.com/en/4x/api.html#req.subdomains

答案 1 :(得分:2)

Express 4.x来req.subdomains但是如果您使用的是旧版本或想要播放自己的代码,那么可以使用其他框架,然后您可能会喜欢

var app = express();

app.use(function(req, res, next) {
    var host = req.get('host');
    console.log(getSubdomain(host));
    console.log(getSubdomainList(host));
    next();
})

function getSubdomain(host) {
    var subdomain = host ? host.substring(0, host.lastIndexOf('.')) : null;
    return subdomain;
}

function getSubdomainList(host) {
    var subdomainList = host ? host.split('.') : null;
    if(subdomainList)
        subdomainList.splice(-1, 1);
    return subdomainList;
}