Node学习记录: koa
快速入门
安装 Node.js
首先,检查 Node 版本。Koa 必须使用 7.6 以上的版本。如果你的版本低于这个要求,就要先升级 Node。
这里我们平时用的是6.11.0版本,需要换成8.1版本
推荐使用 nvm 来管理Node版本:
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash $ nvm install 8.1 $ nvm alias default 8.1
express vs koa
不同
- koa和express在表现上的一点不同是采用ctx一个参数来调用中间件,而不是express的req, res。
然后是在中间件连接的方式上有所不同。
- express的设计是串联的,设计思路超级简洁。
- koa的某一个中间件可以自行选择之后中间件的执行位置的。
举例:比如一个服务器处理时间/日志的中间件的开发:
express:
request进来,记录时间到request._startTime上。绑定一个函数到response的'end','finish'以及response.socket的'error','close'事件上。那个函数会用当前时间和startTime做差,算出运行时间。此express版的计时器是express自带的服务器日志中间件morgan的实现。
koa2:
const xTime = async(ctx,next) => { let start = new Date await next() ctx.set('X-Response-Time',(new Date)-start)+'ms') }
- 这是在功能上,在错误处理上的友好度也更高
无论是 Koa 还 Express 的框架,架构的方式虽不同,但是 HTTP 请求的流转方式是近似的,对于业务层面的实现并无太大鸿沟
安装依赖
前端用koa模拟动态接口
实战教程(6)使用fetch有一部分讲解
npm install koa koa-body koa-router --save-dev
var app = require('koa')(); var router = require('koa-router')(); var koaBody = require('koa-body')(); router.get('/', function *(next) { this.body = 'hello koa !' }); router.get('/api', function *(next) { this.body = 'test data' }); router.get('/api/1', function *(next) { this.body = 'test data 1' }); router.get('/api/2', function *(next) { this.body = { a: 1, b: '123' } }); router.post('/api/post', koaBody, function *(next) { console.log(this.request.body) this.body = JSON.stringify(this.request.body) }); app.use(router.routes()) .use(router.allowedMethods()); app.listen(3000);
参考
相关推荐
往后余生 2020-09-17
lzccheng 2020-09-06
boneix 2020-10-21
seanzed 2020-10-15
ifconfig 2020-10-14
学留痕 2020-09-20
kka 2020-09-14
redis 2020-09-07
soyo 2020-08-31
stonerkuang 2020-08-18
LxyPython 2020-08-17
raksmart0 2020-08-17
Lzs 2020-08-14
MrHaoNan 2020-07-31
80530895 2020-07-05
lengyu0 2020-06-28
YarnSup 2020-06-28
huanglianhuabj00 2020-06-27