简洁而强大的 web 框架:toa
jopen
9年前
Toa
简洁而强大的 web 框架。
Koa and it's authors
Thanks toToa 简介
Toa 修改自 Koa,基本架构原理与 Koa 相似,context
、request
、response
三大基础对象几乎一样。但 Toa 是基于 thunks 组合业务逻辑,来实现异步流程控制和异常处理。thunks
是一个比 co
更强大的异步流程控制工具。
Toa 的异步核心是 thunk
函数,支持 node.js v0.10.x
,但在支持 generator 的 node 环境中(io.js, node.js >= v0.11.9)将会有更好地编程体验:用同步逻辑编写非阻塞的异步程序。
Toa 与 Koa 学习成本和编程体验是一致的,两者之间几乎是无缝切换。但 Toa 去掉了 Koa 的 级联(Cascading)
逻辑,弱化中间件,强化模块化组件,尽量削弱第三方组件访问应用的能力,使得编写大型应用的结构逻辑更简洁明了,也更安全。
koa Process
Toa Process
功能模块
与 Koa 一样, Toa 也没有绑定多余的功能,而仅仅提供了一个轻量优雅的函数库,异步控制处理器和强大的扩展能力。
使用者可以根据自己的需求选择独立的功能模块或中间件,或自己实现相关功能模块。以下是 Toajs 提供的基础性的功能模块。它们已能满足大多数的应用需求。
- toa-pm Process events manager for toa.
- toa-ejs Ejs render module for toa.
- toa-mejs Mejs render module for toa.
- toa-i18n I18n middleware for toa.
- toa-body Request body parser for toa.
- toa-token Token based authentication for toa.
- toa-router A router for toa.
- toa-static A static server module for toa.
- toa-favicon Favicon middleware for toa.
- toa-session Session middleware for toa.
- toa-cookie-session Cookie session middleware for toa.
- toa-compress Compress responses middleware for toa.
- toa-ratelimit Rate limiter module for toa.
安装 Toa
npm install toa
Demo
var Toa = require('toa') var app = Toa(function () { this.body = 'Hello World!\n-- toa' }) app.listen(3000)
API
使用手册
Application
Context
Request
Response
Change Log
Who's using
Teambition
- Teambition 用户社区 https://bbs.teambition.com/
- Teambition 文件服务 https://striker.teambition.net/
- Teambition 消息服务 https://push.teambition.com/
如果你也在用,不妨告知我~