Node.js最新Web技术栈(2016年4月,升级到最新的Koa)
Posted Node全栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js最新Web技术栈(2016年4月,升级到最新的Koa)相关的知识,希望对你有一定的参考价值。
Node.js最新Web技术栈(2016年4月)
上一次的发布的是,感谢大家喜爱,值此koa2.0发布后,决定再次升级技术栈
Node.js是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣,虽然这版上了es语法,但依然是可以简单写,也可以难写,参见,里面讲了Node.js和全栈相关的思考,整体对未来Node.js比较看好
核心变更:es语法支持
使用Node.js 4.x或5.x里的es6特性,如果想玩更高级的,可以使用编译支持es7特性
合理使用 代码风格约定
es6语法,写的一般,比较啰嗦,凑合看吧
需要大家重视OO(面向对象)写法的学习和使用,这是es的另一个好处,推荐蔡伟小兄弟的
相比es语法,其实我本人更喜欢typescript的,不过写Node.js还是推荐跟Node SDK玩才是。
推荐技术栈
koa 1.0 && 2.0 (koa2.0刚发布不久,喜欢折腾的可以考虑)
mongoose(mongodb)
bluebird(Promise/A+实现)
jade(视图层模板)
ava(测试)
vscode(调试)
推荐生成器(稍后会把ava和bluebird加上)
目前国内第一本koa的书(我写的)已经和出版社签订了合同,预计几个月会与大家见面
参与方法
,欢迎大家参与
代码问答(稍后)
和合作的Node.js Koa在线课程,四月份开始报名
了解http协议,尤其是表单和ajax传值,在req里如何接收
querystring
url 和 uri
http status code
http verbs
req取参数的3种方法
3种不同类型的post
命令行玩法
supertest用法
what is rest?
了解db相关操作,先以mongoose为主
这部分基本无调整,只是注意es写法就好了
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帅了
推荐替代mocha,其他基本都一样
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
教程见
以上是关于Node.js最新Web技术栈(2016年4月,升级到最新的Koa)的主要内容,如果未能解决你的问题,请参考以下文章
《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想