3.0.0 • Published 7 years ago
koa-subdomain v3.0.0
koa-subdomain
Simple and lightweight Koa middleware to handle multilevel and wildcard subdomains.
Installation
Install using npm:
npm install koa-subdomain --saveUsage
use with koa-router:
const Koa = require('koa');
const Subdomain = require('koa-subdomain');
const Router = require('koa-router');
const app = new Koa();
const subdomain = new Subdomain();
const router = new Router();
router.get('/', async ctx => {
ctx.body = 'one';
});
// one.example.com
subdomain.use('one', router.routes());
app.use(subdomain.routes());
app.listen(8888);more example:
const app = require('koa')();
const subdomain = require('koa-subdomain')();
// one.example.com
subdomain.use('one', router1);
// two.example.com
subdomain.use('two', router2);
subdomain
.use('a.one', router3) // a.one.example.com
.use('b.one', router4); // b.one.example.com
// example.com
subdomain.use('', router5);
// *.example.com
subdomain.use('*', router6);
// *.one.example.com
subdomain.use('*.one', router7);
// one.*.example.com
subdomain.use('one.*', router8);
app.use(subdomain.routes());
app.listen(8888);Wildcard subdomains will be accessible under wildcardSubdomains in the state of koa context.
const Koa = require('koa');
const Subdomain = require('koa-subdomain');
const Router = require('koa-router');
const app = new Koa();
const subdomain = new Subdomain();
const router1 = new Router();
const router2 = new Router();
// get test.example.com
router1.get('/', async ctx => {
// in body will stand "test"
ctx.body = ctx.state.wildcardSubdomains[0];
});
// get foo.bar.example.com
router2.get('/', async ctx => {
// in body will stand "foo bar"
ctx.body = ctx.state.wildcardSubdomains.join(' ');
});
// *.example.com
subdomain.use('*', router1.routes());
subdomain.use('*.*', router2.routes());
app.use(subdomain.routes());
app.listen(8888);Note: Koa has a subdomainOffset setting (2, by default), so the domain of the app is assumed to be the last two parts of the host. Here is an example when it is useful: if your app domain is localhost:3000, you need to change subdomainOffset to 1 for proper subdomain detection.
const app = new Koa();
app.subdomainOffset = 1
// one.localhost:3000
subdomain.use('one', router);koa1
Install:
npm install koa-subdomain@1 --saveUsage:
const app = require('koa')();
const subdomain = require('koa-subdomain')();
const router = require('koa-router')();
router.get('/', function * () {
this.body = 'one';
});
// one.example.com
subdomain.use('one', router.routes());
app.use(subdomain.routes());
app.listen(8888);Run test
git clone https://github.com/keenwon/koa-subdomain.git
cd koa-subdomain
npm install
npm test3.0.0
7 years ago
2.4.0
7 years ago
2.3.1
7 years ago
2.3.0
7 years ago
2.2.0
7 years ago
2.1.0
8 years ago
2.0.3
9 years ago
2.0.2
9 years ago
2.0.1
9 years ago
2.0.0
9 years ago
1.0.7
9 years ago
1.0.6
10 years ago
1.0.5
10 years ago
1.0.4
10 years ago
1.0.3
10 years ago
1.0.2
10 years ago
1.0.1
10 years ago
1.0.0
10 years ago
0.0.0
11 years ago
