我希望能够做到以下几点:
mydomain.com/this/that
应该以不同方式重定向:
a.sub.domain.mydomain.com/this/that
我看到Express有以下内容:
github.com/bmullan91/express-subdomain
Koa确实有一个:
github.com/demohi/koa-subdomain
你可以看到它已经死了。无论如何使用Koa实现这一目标?
答案 0 :(得分:5)
你可以写一个子域名 - 中间件来实现这个目标。
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);
答案 1 :(得分:1)
我很自豪能够展示我的第一个koa中间件
受express-subdomain的启发,但对通配符有一些更大的灵活性,并使用生成器函数而不是路由器。 它被开发用于Koa-router!