Node.js 用Koa进行子域路由?
我希望能够做到以下几点:Node.js 用Koa进行子域路由?,node.js,subdomain,koa,Node.js,Subdomain,Koa,我希望能够做到以下几点: mydomain.com/this/that github.com/bmullan91/express-subdomain 应以不同的方式重定向到: a.sub.domain.mydomain.com/this/that 我看到Express有以下功能: mydomain.com/this/that github.com/bmullan91/express-subdomain Koa有一个: github.com/demohi/koa-subdomain 正
mydomain.com/this/that
github.com/bmullan91/express-subdomain
应以不同的方式重定向到:
a.sub.domain.mydomain.com/this/that
我看到Express有以下功能:
mydomain.com/this/that
github.com/bmullan91/express-subdomain
Koa有一个:
github.com/demohi/koa-subdomain
正如你所看到的,它已经死了。无论如何,在使用膝关节炎的情况下实现这一点? 你可以编写一个子域中间件来实现这个。
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);
您可以编写子域中间件来实现这一点
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);
我非常自豪地为koa展示我的第一个中间件 受express subdomain的启发,但在通配符方面具有更大的灵活性,并使用生成器函数代替路由器。
它是为配合Koa路由器而开发的 我非常自豪地为koa展示我的第一个中间件 受express subdomain的启发,但在通配符方面具有更大的灵活性,并使用生成器函数代替路由器。
它是为配合Koa路由器而开发的 您的问题不清楚,路由与域没有任何关系,请发布您的代码…@Karl Morrison:您注意到有一个新的koa子域插件@Danny Make吗?最后一个答案包含您的完美解决方案。我用过它-这是伟大的工作!您的问题不清楚,路由与域没有任何关系,请发布您的代码…@Karl Morrison:您注意到有一个新的koa子域插件@Danny Make吗?最后一个答案包含您的完美解决方案。我用过它-这是伟大的工作@幼虫:我对行
var s=this.subdomains[0]| |“”代码>这是如何工作的?Koa是通过收集所有的app来做这个吗?使用(子域名和堆叠这个到这个子域名数组?@丹尼:因为膝关节炎正在创建一个<代码>这个上下文< /代码>,对于每个请求,在<代码>中至少有一个条目。
array.this.subdomains
不是从应用程序创建的。使用
-它是一个数组,因为它还包含子域…例如this.subdomains['bar','foo']
对于foo.bar.example.com
@subrata:我对行var s=this.subdomains[0]感到困惑Koa如何通过收集所有的App.使用(子域和堆叠到这个子域名数组?@丹尼:因为膝关节炎正在创建一个<代码>这个上下文< /代码>每个请求,在<代码>中至少有一个条目。
array.this.subdomains
不是从应用程序创建的。使用-它是一个数组,因为它还包含子域…例如this.subdomains['bar','foo']
对于foo.bar.example.com
我将查看此信息!@KarlMorrison:cool-让我知道这是否回答了您的问题。也可以随意添加愿望作为问题-我通过集成项目管理组织进一步开发。非常欢迎您的反馈!我将查看此信息!@KarlMorrison:cool-让我知道是回答您的问题。也请随意添加愿望作为问题-我组织进一步发展与综合项目管理。非常欢迎您的反馈!