JavaScript TypeScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bench
doc
example Remove internal error listener. Oct 28, 2017
lib
test Change error response to application/json as default. Jan 20, 2018
.gitignore
.travis.yml
CHANGELOG.md
CODE_OF_CONDUCT.md
LICENSE
README.md
guide.js
index.d.ts
package.json
toa.png improve code. Jul 30, 2016
tsconfig.json

README.md

Toa

简�?而强大的 web 框架。

Toa

NPM version Build Status js-standard-style Coverage Status Downloads

Thanks to Koa and it's authors

Demo

const ilog = require('ilog')
const Toa = require('toa')

const app = new Toa()

app.use(function () {
  this.body = 'support sync function middleware!\n'
})

app.use(function (next) {
  this.body += 'support thunk function middleware!\n'
  next()
})

app.use(function * () {
  this.body += yield Promise.resolve('support generator function middleware!\n')
})
// support in Node.js v8
app.use(async function () {
  this.body += await Promise.resolve('support async/await function middleware!\n')
})

app.listen(3000, () => ilog.info('App start at: 3000'))

TypeScript Demo

import { Toa } from 'toa'

const app = new Toa()

app.use(function () {
  this.body = 'support sync function middleware!\n'
})

app.use(function (next) {
  this.body += 'support thunk function middleware!\n'
  next()
})

app.use(function * () {
  this.body += yield Promise.resolve('support generator function middleware!\n')
})

app.use(async function () {
  this.body += await Promise.resolve('support async/await function middleware!\n')
})

app.listen(3000, () => console.log('App start at 3000'))

With HTTP/2

// Visit: https://127.0.0.1:3000/
const http2 = require('http2')
const fs = require('fs')
const Toa = require('toa')
const server = http2.createSecureServer({
  key: fs.readFileSync('./localhost.key'),
  cert: fs.readFileSync('./localhost.crt')
})

const app = new Toa(server)
app.use(function () {
  this.body = 'Hello World!\n-- toa'
})

app.listen(3000, () => console.log('https://127.0.0.1:3000/'))

Install

npm install toa

Toa 简介

Toa �?� Koa 的改进�?。

Toa 修改自 Koa,基本架构原�?�与 Koa 相似,context�?request�?response 三大基础对象几乎一样。但 Toa �?�基于 thunks 组�??业务逻辑,来实现异步�?程控�?�和异常处�?�。

Toa 的异步核�?�?� thunk 函数,支�? node.js v0.10.x,但在支�? generator 的 node 环�?中�?io.js, node.js >= v0.11.9)将会有更好地编程体验:用�?�步逻辑编写非�?�塞的异步程序

ToaKoa 学习�??本和编程体验�?�一致的,两者之间几乎�?�无缝�?�换。但 Toa 去掉了 Koa级�?��?Cascading) 逻辑,强化中间件,强化模块化组件,尽量削弱第三方组件访问应用的�?�力,使得编写大型应用的结构逻辑更简�?�?�了,也更安全。

koa Process

koa Process

Toa Process

Toa Process

功�?�模块

与 Koa 一样, Toa 也没有绑定多余的功�?�,而仅仅�?供了一个轻量�?雅的函数库,异步控�?�处�?�器和强大的扩展�?�力。

使用者可以根据自己的需求选择独立的功�?�模块�?�中间件,�?�自己实现相关功�?�模块。以下�?� Toajs �?供的基础性的功�?�模块。�?们已�?�满足大多数的应用需求。


Bench

API

使用手册

Application

Context

Request

Response

Change Log