如何系統地學習 Express?
雖然我找到了文檔翻譯,可還沒學 Node
另外也沒搜到相關的博文http://www.csser.com/tools/express-js/express-guide-reference-zh-CN.html
先從基礎說起吧,Node.js使用javascript語言,所以JS的語法、特性及OO肯定要先掌握了,再學習node的api,特別需要領會事件驅動及非同步編程的思想,這算是一個很大的轉變,Node主要用於網路應用,所以網路編程內容多看下。
express是一個基於node的web框架(集成web伺服器+mvc),當然其實不用框架,使用node自己弄一個web伺服器和mvc框架也不是很麻煩(Node為網路而生,當然強大的不止這點),但是有優秀的express,封裝了很多常用功能,推薦用。 學習express肯定是先把api過一遍,文檔中的簡單例子都試試,但這肯定是不夠的,要深入了解還是得看源碼,express主要依賴connect(基於node的http伺服器框架,提供大量的中間件幫助用戶構建強大靈活的web server),所以深入connect也是有必要的。 Node.js api:http://nodejs.org/docs/v0.5.10/apiexpress api:http://expressjs.com/guide.html
connect:https://github.com/senchalabs/connectExpressJS其實是極簡單,也極好學的。
- 用 Express application generator 生成一個應用
- 在你做其它事之前,先通讀Using Express middleware,Writing middleware for use in Express apps,參照你已經生成的項目代碼,理解了middleware你會覺得ExpressJS非常簡單,根本不用學。不理解middleware,你會覺得好像Express有很多概念似的
- 其餘的,都算不上核心,模版引擎沒什麼需要特別學的,資料庫調用老老實實用就行了。當你會寫middleware來解決問題的時候,你已經理解了ExpressJS。
好好的官方文檔在那,你非得文檔翻譯和博文,越搞越複雜。
Node (Express) 的Middleware模式
不能一上來就學express,因為他是基於node的框架,不懂node的原理就無法學會express。而node的理論基礎又是javascript的event-loop非同步機制,所以那裡應該是你學習node.js的起點。 別把學node.js當做學java或php那樣看待,原因就在於他的非同步編程思想。
node的中文資料很少,推薦從這篇英文文章看起 http://www.nodebeginner.org/我去,確實是好多年前的問題了
但還是要 不要臉 說一下,我剛剛寫了一篇關於express 的 blog 知乎專欄,感覺寫得挺亂的,各位閑暇時候湊活著看看唄
非同步是個難點,與過去的傳統設計有所不同。如果可以深刻領會掌握非同步的概念,node.js才算是掌握了
說實話這東西很難學的, 一是中文資料太少, 而是裡面融合了太多了概念. 建議先學js, 然後學習js的mvc, 模板, 然後在學一個後端語言,例如php 和codeigniter框架 然後在學nodejs 基本各種概念弄明白了 學起來就快了
最重要的原理,基礎知識,一個請求怎麼最後變成一個HTML頁面。其實都是套路。
我以前玩C#的,最近用nodejs,express擼了些爬蟲跟小站。反正都是套路,express跟http://asp.net mvc 或者jsp這種沒啥區別,請求&>路由&>拿數據&>出模型&>丟給視圖引擎&>渲染HTML&>丟瀏覽器。明白了web/http的原理其實看啥都一樣。
至於非同步,好像也沒啥,很順其自然的,畢竟跟我寫C#的時候task await async ()=&> 滿天飛 。
好多年前的問題啊.Express in action 強烈推薦.
推薦閱讀:
※使用markdown製作的html幻燈片有哪些?
※Node.js 發展前景如何?適用於哪些場景?
※nunjucks如何在express 4中使用?
※深JS(2015 JS中國開發者大會)有哪些女生參加?
※如何在docker里部署nodejs?