TKoa - 使用 TypeScript 重構的 Node.js Koa開發框架

tkoa logo

🌈Tkoa是使用 typescript 編寫的 koa 框架!

儘管它是基於 typescript 編寫,但是你依然還是可以使用一些 node.js 框架和基於 koa 的中間件。

不僅如此,你還可以享受 typescript 的類型檢查系統和方便地使用 typescript 進行測試!

安裝

TKoa 需要 >= typescript v3.1.0 和 node v7.6.0 版本。

$ npm install tkoa

Hello T-koa

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);

Middleware

Tkoa 是一箇中間件框架,擁有兩種中間件:

  • 異步中間件
  • 普通中間件

下面是一個日誌記錄中間件示例,其中使用了不同的中間件類型:

async functions (node v7.6+):

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`);
});

Common function

// 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`);
    });
});

Getting started

Support

TypeScript

  • 大於等於 v3.1 版本

Node.js

  • 大於等於 v7.6.0 版本

License

MIT

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章