如何系統地學習Node.js?

轉載自知乎:http://www.zhihu.com/question/21567720javascript


-----------------------------------------------------------------------------------------------------
Node:
1.《nodejs入門》,才38頁,很好,書中項目作一下,學會基礎php

2.《nodejs開發指南》。180多頁,很好,書中項目作一下,知道基礎,及基本的配合express,jquery,bootstrap,數據庫MongoDB css

另附一些node實現書中例子的一些變化使用Express3.0實現<Node.js開發指南 html

3.開始看express建立初始項目的源代碼對比2中的書, 前端

發現express更新後新的特性:Migrating from 3.x to 4.x · strongloop/express Wiki · GitHub 看express官網api html5

英文:Express 4.x - API Reference  中文:Express - api參考 java

4.以後發現,一個系列課程,從零開始nodejs系列文章:從零開始nodejs系列文章 node

其中 文章: Node.js開發框架Express4.x:Node.js開發框架Express4.x ,詳細介紹了express4項目的基本內容,很好 mysql

文章:用Nodejs鏈接MySQL:用Nodejs鏈接MySQL,介紹mysql與node基本,及數據庫鏈接池,宕機,鏈接超時等node問題解決辦法,node-mysql官網也有相應英文解決辦法 jquery

5.node+json:node.js裏面怎麼建立和解析JSON格式的文件?  更全的是這一個How to parse JSON using Node.js?

(要注意若是require json,只加載一次,更新以後,再使用,可能仍是老版本 )

json很差查看的問題:讀寫 JSON 文件 · Issue #73 · zhanhongtao/blog · GitHub

6.node郵件驗證:Nodejs發郵件組件Nodemailer  選擇適合的Node.js受權認證策略

7.很全的node module Modules · joyent/node Wiki · GitHub

8.文件操做,要麼官方文檔:File System Node.js v0.12.2 Manual & Documentation

或者node基礎-文件系統node.js 文件操做,有一個要注意的是 存儲文件時,好比writefile寫路徑 要使用path.join(__dirname, 「相對於當前文件路徑」);

如path.join(__dirname, "../upload/recordList/" + generateID("record") + ".json");,後端要採用這種dirname的形式,前端能夠直接寫相對於當前文件路徑的形式

node+express
1.總體介紹框架Express框架 -- JavaScript 標準參考教程(alpha)
2.express取值:使用 NodeJS + Express 從 GET/POST Request 取值
3.session+cookie:node.js web開發:EXPRESS 4.x 以上使用session和cookie 的記錄
express 框架之session express-session官網 npmjs.com 的頁面
Node.js Express 從入門到菜鳥(二)——Cookie+Session+三層搭建
express 4.2.0 使用session和cookies
在Express 使用session 作登陸控制
去掉flash以後,能夠只用session,在每次post一開始 置req.session.error爲null,以後,驗證過程當中,檢查錯誤再設置req.session.error,而後根據結果redirect以後,檢測是否error爲null,來決定是否展現
node session保存的只是中間鍵值對,無論賦予res.locals.user等,都不是對象,須要在中間件中從新生成對象,才能調用方法,固然若是隻是使用屬性值,則不須要
4.express基本的中間件官方網站:senchalabs/connect · GitHub

node+mysql

1.node所用的mysql官網:felixge/node-mysql · GitHub

2.Nodejs學習筆記(四)--- 與MySQL交互(felixge/node-mysql)

3.用Nodejs鏈接MySQL

4.三種經常使用數據庫(Oracle、MySQL、SQLServer)的分頁之MySQL分頁

5.sq語句注意順序,order by group by limit..通常放在where後面

express+ejs

1.EJS學習總結 - 雙月通天的我的空間

2.EJS 模板快速入門

3.nodejs express template (模版)的使用 (ejs + express)_node.js 筆記

4.ejs個人總結:

ejs 寫法:

普通傳入並使用變量:<%= title %>
普通for執行js代碼(for中間的代碼必定能夠執行到):
<% for(var i=0; i<headerNavbar.length; i++) {%>
    <li><a href="/reg"><%= headerNavbar[i].name %></a></li>
<% } %>
特殊if語句的js代碼(if中間的額代碼不必定能夠執行到):
 <% if(active=='index'){%>
class="active"
 <% }%>>

jquery

1.jQuery 教程

2.jQuery工具方法 -- JavaScript 標準參考教程(alpha)

3.在線文檔-jquery

4.jQuery設計思想!!

jquery ui

1.jQuery UI

2.中文API:http://www.css88.com/jquery-ui-api/

3.jQuery UI 實例

4.jqueryrain神站:tabs:80+ Best jQuery Tabs with Examples

js tree 庫:15+ jQuery Treeview Plugin & jQuery Tree with Example

jsTree

Bootstrap:

1.基本CSS樣式 · Bootstrap v2

2.全局 CSS 樣式 · Bootstrap 中文文檔 v3

3.bootstrap row等偏移-20px

4.補充:學會Twitter Bootstrap再也不難 :從2.x升級到3.0版本

html5

1.drag:庫:interact.js - JavaScript drag and drop, resizing and gestures with inertia and snappingDragdealer.js 教程:HTML 5 拖放HTML5 drag & drop 拖拽與拖放簡介 « 張鑫旭

git:

1.Git:代碼衝突常看法決方法

2.使用WebStorm和Git開發Node.js應用

3.git生成ssh key及本地解決多個ssh key的問題 寫的很是清楚

4.Generating SSH keys

js:

1.對象自己方法,能夠用於對這類對象的工具類方法,看成對象manager方法

對象原型中方法,用於每一個不一樣對象實例的方法

2.Javascript異步編程的4種方法 callback儘可能寫成return callback()

3.JS對象類型的肯定

4.js取屬性,通常用object.pro ,若是須要動態肯定屬性,可使用 object['dynamic'+pro],動態取屬性,包括session,雖然爲鍵值對,但這樣也能夠

json:

1.jquery操做:jQuery中讀取json文件

後端更新前端:

1.怎麼使用 JavaScript 將網站後臺的數據變化實時更新到前端? - 前端開發

2.Socket.io在線聊天室

3.邁出nodejs的第二步,用nodejs+socket.io搭建一個websocket聊天室

4.使用Node.js實現數據推送

5.Automattic/socket.io · GitHub

6.Nodejs實現websocket的4種方式

RESTFul:

1.Pixelhandler's Blog

2.理解RESTful架構

雜:

1. passportJS配置用戶驗證:PassportJS 配置失敗:req.user 未定義

Passport | Configure

2.回調函數:回調函數,就是放在另一個函數(如 parent)的參數列表中,做爲參數傳遞給這個 parent,

而後在 parent 函數體的某個位置執行。理解javascript中的回調函數(callback)_javascript技巧

3.再也不用的req.flsah():express 版本更新後遇到的問題 flash()

4.app.locals和res.locals 圖靈社區 : 閱讀 : express配置項more

5.Crypto加密解密:Node.js加密算法庫Crypto

6.在 CSS 中如何使用百分比設置頁面 Div 高度? - 前端開發

7.HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth之徹底詳解(轉載)

8.文件上傳的漸進式加強

拖動上傳 js庫:Dropzone.js

9.js diagram 需求圖:JointJS - the HTML 5 JavaScript diagramming library.

http://gojs.net/latest/index.html

10js 網頁分析:Google Analytics Official Website

11.js network網狀圖 ,時間線,2d,3d 庫:vis.js - A dynamic, browser based visualization library.

12.js fileManager:10 jQuery Based File Manager Plugins

在線富文本編輯器:RESPONSIVE filemanager 9.9.2(php tinyMCE)

推薦:Redactor Plugins輕量且美觀

13.小型:file explore:Kloudless/file-explorer · GitHub:能夠實現從多處上傳,選擇文件

Cute File Browser with jQuery and PHP 美觀輕量可是須要jquery ajax php

14. js tree 庫:15+ jQuery Treeview Plugin & jQuery Tree with Example

jsTree

15.messageBox 通知框 js庫:Bootbox.js—alert, confirm and flexible modal dialogs for the Bootstrap framework

16.【css】清除浮動(clearfix 和 clear)的用法

六種實現元素水平居中

17.button css庫:Buttons - 一個高度可定製的按鈕(button) CSS 樣式庫。

18.Html 解決長串英文字母顯示不能自動換行

19.非input元素使用focus等方法:讓元素得到焦點

20.text file等在表單中同時上傳時,記得表單設enctype="multipart/form-data",不然可能拿不到數據,還有一個,ajax傳輸data,記得設置data-type爲json,尤爲jstree使用ajax傳輸節點

21.多文件,多圖片上傳預覽,進度等,能夠用webuploader,busboy等

22.busboy nodejs+busboy實現文件上傳https://www.npmjs.com/package/busboy

23.前端字體:字體選擇_有字庫

24.$('#btn').on('click',function(e){ e.preventDefaults(); or return false; })均能在表單提交以前阻止提交

24.404 not found 網頁設計真沒見識過,原來404錯誤頁面能夠這樣設計

25.閱讀以 JavaScript 編寫的本地文件FileReader - Web API 接口 讀寫客戶端本地文件

26.chrome下 頁面退出時發送ajax寫法:

$(window).on('beforeunload', function ()
{
//this will work only for Chrome
    $.ajax({
type:'GET',
url:'/ajaxRequest/myClassesOfteacherclose',
async:false
    });
});

27.前端中下面兩個的$('a').text()是不同的,會計算空格

<a class='button'>關注</a>
<a class='button'>
    關注
</a>

性能優化:

1.!!!毫秒必爭,前端網頁性能最佳實踐

2.HTML 5 應用程序緩存

3.Lazy Load Plugin for jQuery

持續更新~~

做者:寶蓋頭和繁弱連接:http://www.zhihu.com/question/21567720/answer/43795625來源:知乎著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

相關文章
相關標籤/搜索