Node.js就是運行在服務端的 JavaScript。
Node.js是一個基於Chrome JavaScript 運行時建立的一個平臺。
Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度非常快,性能非常好。
使用Node.js時,不僅僅實現了一個應用,同時還實現了整個HTTP服務器。
下載與安裝
官網:https://nodejs.org/en/
下載後按步驟安裝即可。安裝後可在運行輸入cmd,node -v查看版本信息,驗證是否安裝成功。
Node.js的組成
- 引入模塊:使用 require 指令來載入 Node.js 的模塊。
- 創建服務器:服務器可以監聽客戶端的請求。
- 使用 createServer() 方法創建服務器,會返回 一個對象,這個對象有一個叫做 listen 的方法,這個方法有一個數值參數, 指定這個 HTTP 服務器監聽的端口號。
- 接收請求與響應請求:客戶端可以使用瀏覽器或終端發送 HTTP 請求,服務器接收請求後返回響應數據。
var http = require('http');
http.createServer(function (request, response) {
// 發送 HTTP 頭部
// HTTP 狀態值: 200 : OK
// 內容類型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 發送響應數據 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 終端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
使用 node 命令執行以上的代碼:
模塊化
Node應用由模塊組成,採用CommonJS模塊規範。
- 引用模塊 require
- 引用安裝到node環境中的模塊
- 例如上一部分中引入’http’
- 引用自己編寫的模塊
- 例如自己寫了一個模塊
- module_a.js => console.log(‘module a’)
- 注意:再新建一個文件直接require(‘module_a.js’)會報錯。Error: Cannot find module ‘module_a’,因爲在Node裏直接用require,存在尋找路徑的問題,有默認的尋找目錄,如果都沒有,就會報錯。
- 把路徑標示出即可。require(‘./module_a.js’)
- 引用安裝到node環境中的模塊
- 輸出接口 exports
function add(a,b){
return a+b;
}
exports.add = add
exports後面的add是對外看到的方法名,等號後面的add是指定了內部的具體方法。
NPM
NPM是Node的包管理工具(Package Manager)。通過它,可以下載使用別人編寫的包,也可以上傳分享自己的程序。新版的NodeJS已經集成了NPM,所以NPM會一併安裝好。可以使用npm -v在命令行中查看版本,驗證是否安裝(npm爲全局命令,任何位置都可使用)
- 安裝
- npm install module_name 本地安裝
- npm install module_name -g 全局安裝
- 本地安裝將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。通過 require() 來引入本地安裝的包。
- 全局安裝將安裝包放在 /usr/local 下或者你 node 的安裝目錄,可以直接在命令行裏使用。
- 卸載
- npm uninstall module_name
- 更新
- npm update module_name
- 搜索
- npm search module_name
package.json 位於模塊的目錄下,用於定義包的屬性。
創建自己的模塊時,package.json 文件是必不可少的。可以使用 NPM 生成 package.json 文件。
- 發佈模塊
- npm adduser 第一次使用需要在npm資源庫中註冊用戶
- npm publish 名稱不允許重複
NPM還有其他命令,可以通過npm help查看。
Web開發
Node可用於創建動態網站,作爲服務端環境,Node自身攜帶HTTP服務器。但是原始封裝程度較低,開發成本高,通常藉助庫來完成。
如何使用Node編寫一個簡單的靜態頁面
- 創建一個server
- 處理請求
- 根據請求讀取對應文件
- 將文件內容輸出返回
- 處理錯誤
步驟比較繁瑣。
Node庫
- connect.js
- 提供接口, 簡化開發
- express.js
- Web開發框架
自己加油加油 笨鳥後飛也要飛呀飛