Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/songyazhao/koa-demo
koa学习练习demo
https://github.com/songyazhao/koa-demo
koa node
Last synced: about 1 month ago
JSON representation
koa学习练习demo
- Host: GitHub
- URL: https://github.com/songyazhao/koa-demo
- Owner: songyazhao
- License: mit
- Created: 2018-05-29T11:28:18.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-05-29T11:42:51.000Z (over 6 years ago)
- Last Synced: 2024-11-07T18:47:22.918Z (3 months ago)
- Topics: koa, node
- Language: JavaScript
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 记录一些学习koa时候的东西
## koa是基于洋葱圈模型的
### app.use 可以链式调用
```js
app.use(fn1)
.use(fn2)
.use(fn3)
.listen(3000)
```### koa-compose可以整合多个中间件:
```js
const middlewares = require('koa-compose')([middleware1, middleware2])
app.use(middlewares)
```### koa-body模块可以用来从 POST 请求的数据体里面提取键值对
```js
const koaBody = require('koa-body')const main = async function(ctx) {
const body = ctx.request.body
if (!body.name) ctx.throw(400, '.name required')
ctx.body = { name: body.name }
}app.use(koaBody())
```### 错误处理
运行过程中一旦出错,Koa 会触发一个error事件。监听这个事件,也可以处理错误。需要注意的是,如果错误被try...catch捕获,就不会触发error事件。
这时,必须调用ctx.app.emit(),手动释放error事件,才能让监听函数生效。
```js
...
try {} catch(err) {
...
ctx.app.emit('error', arg1, arg2)
}app.on('error', (arg1, arg2) => {}) // 监听错误
```