如何系統地學習Node.js?


(嗯..簡單說明一下,下面只是當初寫一個node小項目用到的東西,自己隨手總結了一下,學完這些,大概能從前端到后端自己隨手寫一些node的小東西,但想要深入學習node,下面是遠遠不夠的,別的回答里有一些推薦的深入學習的,推薦看一看~)
-----------------------------------------------------------------------------------------------------
Node:
1.《nodejs入門》,才38頁,很好,書中項目做一下,學會基礎

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

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

3.開始看express創建初始項目的源代碼對比2中的書,發現express更新后新的特性:Migrating from 3.x to 4.x · strongloop/express Wiki · GitHub

看express官網api

英文:Express 4.x - API Reference

中文:Express - api參考

4.之后發現,一個系列課程,從零開始nodejs系列文章:從零開始nodejs系列文章

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

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

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.

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實現文件上傳

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



作者:寶蓋頭和繁弱
鏈接:https://www.zhihu.com/question/21567720/answer/43795625
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM