🌈Tkoa是使用 typescript 編寫的 koa 框架!node
儘管它是基於 typescript 編寫,可是你依然仍是可使用一些 node.js 框架和基於 koa 的中間件。git
不只如此,你還能夠享受 typescript 的類型檢查系統和方便地使用 typescript 進行測試!github
TKoa 須要 >= typescript v3.1.0 和 node v7.6.0 版本。typescript
$ npm install tkoanpm
import tKoa = require('tkoa'); interface ctx { res: { end: Function } } const app = new tKoa(); // response app.use((ctx: ctx) => { ctx.res.end('Hello T-koa!'); }); app.listen(3000);
Tkoa 是一箇中間件框架,擁有兩種中間件:app
下面是一個日誌記錄中間件示例,其中使用了不一樣的中間件類型:框架
interface ctx { method: string, url: string } app.use(async (ctx: ctx, next: Function) => { const start = Date.now(); await next(); const ms = Date.now() - start; console.log(`${ctx.method} ${ctx.url} - ${ms}ms`); });
// Middleware normally takes two parameters (ctx, next), ctx is the context for one request, // next is a function that is invoked to execute the downstream middleware. It returns a Promise with a then function for running code after completion. interface ctx { method: string, url: string } app.use((ctx: ctx, next: Function) => { const start = Date.now(); return next().then(() => { const ms = Date.now() - start; console.log(`${ctx.method} ${ctx.url} - ${ms}ms`); }); });
MITkoa