我希望能够做到以下几点:

mydomain.com/this/that


应该以不同的方式重定向到:

a.sub.domain.mydomain.com/this/that


我看到Express具有以下内容:

github.com/bmullan91/express-subdomain


Koa确实有一个:

github.com/demohi/koa-subdomain


如您所见,它已经死了。无论如何要在使用Koa时实现这一目标?

最佳答案

您可以编写一个子域中间件来实现此目的。

var koa = require('koa');
var app = koa();


routeMain = function *(next) {
    this.body = 'mydomain.com';
};


routeSub = function *(next) {
    this.body = 'sub.mydomain.com';
};


// subdomain middleware
subdomain = function (domain,route){
    return function *(next){
        var s=this.subdomains[0] || '';
        if (s === domain) {
            yield route.call(this,next);
        }
        else{
            yield next;
        }
    };
};


app.use(subdomain('sub', routeSub));
app.use(subdomain('', routeMain));

app.use(function *(next){
    console.log("done");
});


app.listen(3000);

10-06 08:05
查看更多