aboutsummaryrefslogtreecommitdiff
path: root/node_modules/koa-mount/Readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/koa-mount/Readme.md')
-rw-r--r--node_modules/koa-mount/Readme.md127
1 files changed, 127 insertions, 0 deletions
diff --git a/node_modules/koa-mount/Readme.md b/node_modules/koa-mount/Readme.md
new file mode 100644
index 00000000..3d22b5f8
--- /dev/null
+++ b/node_modules/koa-mount/Readme.md
@@ -0,0 +1,127 @@
+# koa-mount
+
+ Mount other Koa applications as middleware. The `path` passed to `mount()` is stripped
+ from the URL temporarily until the stack unwinds. This is useful for creating entire
+ apps or middleware that will function correctly regardless of which path segment(s)
+ they should operate on.
+
+## Installation
+
+```js
+$ npm install koa-mount
+```
+
+## Examples
+
+ View the [./examples](examples) directory for working examples.
+
+### Mounting Applications
+
+ Entire applications mounted at specific paths. For example you could mount
+ a blog application at "/blog", with a router that matches paths such as
+ "GET /", "GET /posts", and will behave properly for "GET /blog/posts" etc
+ when mounted.
+
+```js
+const mount = require('koa-mount');
+const Koa = require('koa');
+
+// hello
+
+const a = new Koa();
+
+a.use(async function (ctx, next){
+ await next();
+ ctx.body = 'Hello';
+});
+
+// world
+
+const b = new Koa();
+
+b.use(async function (ctx, next){
+ await next();
+ ctx.body = 'World';
+});
+
+// app
+
+const app = new Koa();
+
+app.use(mount('/hello', a));
+app.use(mount('/world', b));
+
+app.listen(3000);
+console.log('listening on port 3000');
+```
+
+ Try the following requests:
+
+```
+$ GET /
+Not Found
+
+$ GET /hello
+Hello
+
+$ GET /world
+World
+```
+
+### Mounting Middleware
+
+ Mount middleware at specific paths, allowing them to operate independently
+ of the prefix, as they're not aware of it.
+
+```js
+const mount = require('koa-mount');
+const Koa = require('koa');
+
+async function hello(ctx, next){
+ await next();
+ ctx.body = 'Hello';
+}
+
+async function world(ctx, next){
+ await next();
+ ctx.body = 'World';
+}
+
+const app = new Koa();
+
+app.use(mount('/hello', hello));
+app.use(mount('/world', world));
+
+app.listen(3000);
+console.log('listening on port 3000');
+```
+
+### Optional Paths
+
+ The path argument is optional, defaulting to "/":
+
+```js
+app.use(mount(a));
+app.use(mount(b));
+```
+
+## Debugging
+
+ Use the __DEBUG__ environement variable to whitelist
+ koa-mount debug output:
+
+```
+$ DEBUG=koa-mount node myapp.js &
+$ GET /foo/bar/baz
+
+ koa-mount enter /foo/bar/baz -> /bar/baz +2s
+ koa-mount enter /bar/baz -> /baz +0ms
+ koa-mount enter /baz -> / +0ms
+ koa-mount leave /baz -> / +1ms
+ koa-mount leave /bar/baz -> /baz +0ms
+ koa-mount leave /foo/bar/baz -> /bar/baz +0ms
+```
+
+## License
+
+ MIT