Node.js最新Web技术栈(2016年4月)前端
上一次的发布的是精华 Node.js最新Web技术栈(2015年5月),感谢你们喜好,值此koa2.0发布后,决定再次升级技术栈node
Node.js是比较简单的,只有你有前端js基础,那就按照个人办法来吧!一周足矣,虽然这版上了es语法,但依然是能够简单写,也能够难写,参见《全栈工程师之路-Node.js》,里面讲了Node.js和全栈相关的思考,总体对将来Node.js比较看好git

核心变动:es语法支持
相比es语法,其实我本人更喜欢typescript的,不过写Node.js仍是推荐跟Node SDK玩才是。程序员
推荐技术栈
- koa 1.0 && 2.0 (koa2.0刚发布不久,喜欢折腾的能够考虑)
- mongoose(mongodb)
- bluebird(Promise/A+实现)
- jade(视图层模板)
- ava(测试)
- vscode(调试)
推荐生成器(稍后会把ava和bluebird加上)angularjs
https://github.com/17koa/koa-generatores6
目前国内第一本koa的书(我写的)已经和出版社签定了合同,预计几个月会与你们见面,github
途径ajax
了解http协议,尤为是表单和ajax传值,在req里如何接收
- 绝对地址和相对地址
- querystring
- url 和 uri
- http status code
- http verbs
- req取参数的3种方法
- 3种不一样类型的post
- 命令行玩法
- supertest用法
- what is rest?
http://i5ting.github.io/node-http/mongodb
了解db相关操做,先以mongoose为主
这部分基本无调整,只是注意es写法就行了typescript
- crud(增删改查)
- 了解分页
- 了解关系(1对1,1对多)在mongoose里如何实现
- 了解statics方法和methods的区别
- 了解pre和post的差异
- 了解mongoose的插件机制
- 了解mvc里m的做用,以及什么样的代码该放到模型里
- 了解索引优化
- 了解mongodb的部署
了解Generator、Async和Promise/A+规范,合理规避回调陷阱
此次的变动主要是es6支持的generator和es7支持的async
总体来讲generator和async并不具有流程控制功能,因此仍是须要promise支持的,之前对generator支持的promise的只有co,而基于async的基本没有,因此这里依然推荐使用bluebird,它对这些支持都很是好
- 了解的node的异步、generator和async
- 了解异步的恶心
- 了解异步基本场景,好比waterfall这样的路程使用async如何处理
- 了解q和bluebird用法(若是有angularjs经验,推荐q,其余只推荐bluebird)
- 了解bluebird的promisifyAll用法
- 了解如何重构流程,以及代码的可读性
使用tdd/bdd测试,最小化问题
此次的变动主要是下一代技术栈以es开发为主,这样的话,测试用mocha,tap、tape等就没有ava帅了
推荐ava替代mocha,其余基本都同样
Why AVA?
- Minimal and fast
- Simple test syntax
- Runs tests concurrently
- Enforces writing atomic tests
- No implicit globals
- Isolated environment for each test file
- Write your tests in ES2015
- Promise support
- Generator function support
- Async function support
- Observable support
- Enhanced assertion messages
- Optional TAP output
- Clean stack traces
测试的好处,这里就不说了,可是有一点是要说的,node的调试比较难,每每不如写测试来的快,推荐学习一下
- 理解最小问题思想,培养程序员该有的强大的心里
- ava的基本用法
- 理解断言的用法(注内置断言,不须要assert/should/expect等)
- 理解测试生命周期
- 理解箭头函数、generator、promise等用法
- 理解如何模拟数据
- 理解http下的supertest测试
- 理解测试覆盖率
- 理解基于gulp自动化测试方法
若是有兴趣,能够去了解更多bdd/tdd内容,甚至是cucumber.js
你不管如何都要会的:调试
调试有3种方法
- node debug(太挫了,若是不是c,了解adb之类的人不推荐用)
- node-inspector(推荐4※)
- tdd/bdd(推荐5※)
做为基础技能掌握就好,实际开发推荐vscode
教程见 https://github.com/i5ting/vsc
欢迎关注个人公众号【node全栈】
