TKoa - 使用 TypeScript 重构的 Nodejs Koa 开发框架

TKoa - 使用 TypeScript 重构的 Nodejs 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


17 回复

支持。btw,为什么不叫 Toa。。。


不理解这样做的意义(分割),不是已经存在@types/koa了么。

同楼上问

同问,跟原有的 Koa + types 有什么区别。

/koa 只是 koa 添加到 TypeScript 的一个语法包而已,只是提供给 TypeScript 一些语法的信息,但是 koa 这个框架并没有 TypeScript 版本的,这两者是不一样的

已经给楼上回答了。
已经给楼上回答了。

为啥还在用 import tKoa = require('tkoa'); 这种写法

文档说明里已经写明了,这样用 commonjs 模块规范是为了更好地兼容 koa 中间件和 node.js 框架。

赞。不过现在有 nestjs 了,用 ts 封装了 express.不知道 i 和楼主这个区别大不大

其实就是 koa 和 Express 的差别

typescript 版本的 koa 有什么优势吗,nest 我记得好像还有些注解的语法糖,用起来和 ng、sprintboot 很像

拥有 TypeScript 完整的类型检查系统,可以很方便的调试

都一样咯

内部用 TS 实现和外部暴露 API 用 TS 写 Definition 差不多吧……

今天又看了下,类型推断竟然是要你自己写 interface,要你这个有何用?
还有什么用 legacy 的 import 语法说是为了兼容 commonjs,我佛了,tsconfig 里面不会自己设置?
这就是个骗🌟项目

不是有 /koa 吗?
而且 import tKoa = require(‘tkoa’); 是什么写法。。。 没明白

TKoa是使用TypeScript重构的Node.js Koa开发框架,它为开发者提供了一个结合了Koa的灵活性和TypeScript的强类型检查系统的开发环境。以下是对TKoa的简要介绍和示例代码。

TKoa不仅继承了Koa的所有优点,如中间件的灵活性、错误处理机制等,还通过TypeScript的类型系统增强了代码的健壮性和可维护性。开发者可以享受TypeScript带来的类型检查、自动补全和重构工具等好处,同时依然可以使用Node.js框架和基于Koa的中间件。

要使用TKoa,你需要确保系统中已安装了Node.js和TypeScript。TKoa要求TypeScript版本大于等于3.1.0,Node.js版本大于等于7.6.0。

以下是一个简单的TKoa应用示例:

import tKoa = require('tkoa');

interface ctx {
    res: {
        end: Function
    }
}

const app = new tKoa();

app.use((ctx: ctx) => {
    ctx.res.end('Hello T-koa!');
});

app.listen(3000);

在这个示例中,我们首先导入了TKoa模块,然后定义了一个ctx接口来描述请求的上下文。接着,我们创建了一个TKoa应用实例,并使用app.use方法注册了一个中间件,该中间件简单地返回了一个“Hello T-koa!”的响应。最后,我们调用app.listen方法启动服务器,监听3000端口。

总的来说,TKoa为Node.js开发者提供了一个强大的、类型安全的Koa开发框架,它结合了Koa的灵活性和TypeScript的强类型检查系统,可以帮助开发者更快地构建健壮、可维护的Web应用。

回到顶部