《koa2进阶学习笔记》附教程demo
第一次写书,如有错误,欢迎指正!O(∩_∩)O~。 持续更新笔记,后续会根据koa2 正式发布后添加koa2周边生态使用笔记
GitHub地址
https://github.com/ChenShenhai/koa2-note/
GitBook地址
https://chenshenhai.github.io/koa2-note/
目录
- 1. koa2开始
- 2. 路由
- 3. 请求数据获取
- 4. 静态资源加载
- 5. cookie/session
- 6. 模板引擎
- 7. 文件上传
- 8. 数据库mysql
- 9. JSONP实现
- 10. 测试
- 11. debug
- 12. 项目框架搭建
前言
- ES6/7 带来的变革
自ES6确定和ES7的async/await开始普及,node.js的发展变得更加迅速,可以预见到JavaScript中令人“头疼”的多层嵌套回调(注意是”多层嵌套回调“)将会使用Promise + async/await的方式逐渐替代(不是完全替代,多层嵌套回调也有其特殊的应用场景)。
- koa2 大势所趋的前景
基于async/await实现中间体系的koa2框架将会是是node.js web开发方向大势所趋的普及框架。基于generator/yield的koa1将会逐渐被koa2替代,毕竟使用co.js来处理generator是一种过渡的方式,虽然有其特定的应用场景,但是用async/await会更加优雅地实现同步写法。
初衷
- 写笔记目的
从学生到工作写了几年的代码,觉得虽然学习新语言,新框架的主要目的是为了解决实际问题,其中更重要的是要每次入门了一门新技术后要及时留下点学习的痕迹,方便以后忘记可以从学习轨迹中迅速上手。
学习
good
很棒,自己总结是提升的关键。 准备在2.x正式版出来再好好学学
这个必须支持
支持
支持 非常棒,koa2正式版应该就这两天了
很棒
大海处女贴,顶
更新2017.02.24:添加开发单元测试教程笔记和demo
赞一个
来自酷炫的 CNodeMD
更新2017.02.25:由于koa@2正式发布了!O(∩_∩)O, 修改所有demo的koa2依赖及相关笔记文档
学习了
更新2017.02.27:添加 原生koa2实现JSONP 和 koa-jsonp中间件
支持!
支持!
如果koa 中用第三方的模块,是不是必须得用promise重新封装一下?
赞一个!<br>【来自CNode社区小程序版的评论】<br>
顶
看官网介绍,koa2是要node v7.6 以上是吧
@Tianfer 是的,因为nodejs 7.6.0 开始正式支持async/await,不需要加 --harmony
@yakczh 这个不一定,如果是第三方模块的API是callback方式使用的话,建议用promise封装一下,在 async/await 写法下使用起来方便些。
举个例子,假如有个第三方的文件读取库,API是callback的使用方式
// 假如有个第三方的文件读取库 myFs
const myFs = require('myFs')
// promise 封装第三方库的callback API
function getFileContent ( path ) {
return new Promise( ( resolve, reject ) => {
myFs.readFile( path, ( err, content) => {
if ( err ) {
reject( err )
} else {
resolve( content )
}
} )
} )
}
// async/await 方式使用
async function main( ) {
let content = await getFileContent( pathStr )
console.log( content )
}
// koa2 中使用
app.use( async ( ctx ) => {
if ( ctx.method === 'GET' && ctx.url === '/readFile' ) {
let content = await getFileContent( pathStr )
ctx.body = content
} else {
ctx.body = 'not found'
}
})
非常感谢贡献知识的
mark
Wonderful!!! 楼主,我想问一下:你的电子书网站是用什么工具生成的?
mark 怎么不用mongodb
强烈支持啊!真是好东西!请问LZ有没有pdf版本的呢?这样地铁上也能看了
nice
@youarenode 因为MySQL比较容易上手理解,至于mongodb后面找个时间写一下哈,补充上去。
@hwoarangzk 因为还要持续更新,暂时还没做成PDF,但是这本书我是通过gitbook规范写的,如果你需要pdf,可以通过gitbook官网生成pdf。
我要都练习一遍 谢谢LZ
mark
我要都练习一遍 谢谢LZ
非常给力的
通俗易懂 适合初学者
666
默默的支持一下.