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全棧】
