A basic usage, responding to every request with Hello World;
import { App } from "https://deno.land/x/doa/mod.ts";
const app = new App();
app.use(async ctx => {
ctx.status = 200;
ctx.body = "Hello World";
});
app.listen({ port: 8000 });
Adding middlewares through app.use(middleware)
, will cause all of the middlewares to be executed upon each request in the specified order. When you call the middleware, it passed the context and next method in the stack.
A more complex example with responseTime middleware, which will add x-response-time
in the response header:
import { App } from "https://deno.land/x/doa/mod.ts";
import { responseTime } from "https://deno.land/x/response-time/mod.ts";
const app = new App();
app.use(responseTime());
app.use(async ctx => {
ctx.status = 200;
ctx.body = "Hello World";
});
app.listen({ port: 8000 });
For more information see https://koajs.com/.
More than 199 test cases( over 90% ) to ensure code quality.
$ deno test --allow-read --allow-write --allow-net --allow-hrtime
# test result: ok. 199 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out (715ms)
Use wrk to benchmark doa.
$ deno run --allow-net --allow-env ./example.ts
$ make -C benchmarks
Make sure you are using deno 1.1.3 and std 0.59.0. Doa will continue to update deno to the latest version later.
Thanks goes to these wonderful people (emoji key):
JohannLai 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!