1.Nodejs簡介 - http://nodejs.cn/api/
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。
Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。
Node.js 的包管理器 npm,是全球最大的開源庫生態系統。
2.COMMONJS模塊化規范(http://www.commonjs.org/)
CommonJS是一種規范,NodeJS是這種規范的實現。
一個文件就是一個模塊。
CommonJS模塊規范主要分為三部分:模塊定義、模塊引用、模塊標識。
2.1模塊定義-export
export是module.exports的一個引用。
2.2模塊引用-require
2.3模塊標識:
模塊標識指的是傳遞給require方法的參數,必須是符合小駝峰命名的字符串,或者以 ./ 、.. /、開
頭的相對路徑,或者絕對路徑。
requireJS --AMD 參考commonjs規范
es6module 參考commonjs規范
3.npm , nrm,nvm工具使用;
npm(Node.js自帶的包管理工具)
npm為你和你的團隊打開了連接整個 JavaScript 天才世界的一扇大門。它是世界上最大的軟件注冊表。
npm info [package] 查看當前package 的版本信息
npm view [package] versions 查看npm下面package 所有的版本
npm update [package] 更新模塊
npm uninstall [package] 卸載模塊
npm install [package] 安裝模塊
npm國外的服務器,安裝過程中有可能因為網絡問題產生丟包,可以采用cnpm進行安裝
cnpm install:淘寶鏡https://blog.csdn.net/quuqu/article/details/64121812
Dos 下面按照順序將下面的三句命令復制執行。
npm config set registry https://registry.npm.taobao.org
npm config get registry
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm cache clean -f :清除npm的緩沖
yarn(軟件安裝)--facebook
https://yarnpkg.com/lang/zh-hans/docs/install/#windows-stable (下載yarn)
https://yarnpkg.com/zh-Hans/docs/cli/ (yarn的常用命令)
yarn init:初始化項目;
yarn install:安裝package.json 文件里定義的所有依賴包;
yarn global add [package] : 安裝全局模塊(包)。
yarn add [package] --dev 安裝依賴的模塊(包)
yarn remove [package]:卸載模塊(包)。
yarn global remove [package]:卸載全局的包
tyarn安裝:是國內淘寶的鏡像
npm install yarn tyarn -g
nrm(npm registry manager )是npm的鏡像源管理工具,有時候國外資源太慢,那么我們可以用這個來切換鏡像源。
首先全局安裝 nrm npm install -g nrm
列出可用的源:nrm ls 使用哪個源:nrm use taobao
刪除電腦的所有的node版本,重新利用nvm進行安裝。
nvm是一個可以讓你在同一台機器上安裝和切換不同版本node的工具,nvm 的官方版本只支持Linux 和 Mac。 Windows 用戶,可以用nvm-windows。
https://www.cnblogs.com/hamsterPP/p/8076131.html
配置淘寶源,讓npm安裝速度更快。
打開nvm安裝的根目錄“settings.txt”文件,在最后面追加下面兩行:
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
nvm list available 列出node的所有版本。
nodemon 測試工具使用:直接監聽js文件
Nodemon 是一款非常實用的工具,用來監控你 node.js 源代碼的任何變化和自動重啟你的服務器。
Nodemon 是一款完美的開發工具.
npm install -g nodemon
4.自定義模塊/內置模塊/第三方模塊
自定義模塊:根據commonjs自定義的模塊
內置模塊:Node.js自帶的
第三方模塊:需要安裝引入的npm模塊--npm里面
5.內置模塊 http , fs , path 根據需求進行講解
5.1http模塊:是用於創建一個能夠處理和響應 http 響應的服務
req:request 請求對象
res:response 響應對象
獲取請求信息
require.url 獲取請求路徑
request.httpVersion 獲取協議的版本
request.method 獲取請求的方式(get post)
request.headers 獲取請求頭
設置響應信息
response.setHeader() 設置響應頭
response.writeHead() 設置響應頭
response.write() 設置響應信息
response.end() 響應結束
http.createServer創建一個web服務器
http.request獲取數據接口
5.2Filesystem(fs模塊):用於對系統文件及目錄進行讀寫操作。
得到文件與目錄信息:stat
創建一個目錄:mkdir
創建文件並寫入內容:writeFile(創建並寫入內容),appendFile(寫入)
讀取文件的內容:readFile--(toString())
列出目錄的內容:readdir--數組
刪除目錄或文件:rmdir(刪除目錄),unlink(刪除文件)
5.3path模塊:提供了一些用於處理文件路徑的小工具
path.join(__dirname,'fileurl') 方法使用平台特定的分隔符把全部給定的 path 片段連接到一起,並規范化生成的路徑。
5.4Url模塊:幫助我們對提交上來的url進行解析處理
url.parse(url)--將一個URL字符串轉換成對象並返回。
url.format(obj)--parse逆運算。
6.路由
Nodejs路由搭建--前端路由
Nodejs路由搭建--服務器路由
單頁Web應用(single page web application,SPA),就是只有一張Web頁面的應用,是加載單個HTML 頁面並在用戶與應用程序交互時動態更新該頁面的Web應用程序。
瀏覽器一開始會加載必需的HTML、CSS和JavaScript,所有的操作都在這張頁面上完成,都由JavaScript來控制。因此,對單頁應用來說模塊化的開發和設計顯得相當重要。
事件:hashchange / location.hash
當URL的片段標識符更改時,將觸發hashchange事件(跟在#符號后面的URL部分,包括#符號)
hashchange事件觸發時,事件對象會有hash改變前的URL(oldURL)和hash改變后的 URL(newURL)兩個屬性。
路由實現原理:hash哈希值
7.強化練習
1.使用npm下載外部模塊 https://www.npmjs.com/
2.Nodejs, http服務搭建
3.Nodejs路由搭建(前端路由、服務器路由)