1. 第一步, 在電腦上安裝node
可以在官網上下安裝包或者用命令去安裝, 百度一下 你就知道.
2. 創建第一個應用
分三步:
- 引入require模塊, 我們可以使用require指令來載入Node.js模塊.
var http = require("http");
創建服務器.服務器用于監聽用戶的請求.
接收請求和響應請求. 服務器很容易創建, 客戶端可以使用瀏覽器或者終端發送http請求, 服務器接收請求后返回響應數據.
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px}span.s1 {font-variant-ligatures: no-common-ligatures}
var http = require('http');
http.createServer(function (request, response){
//發送http的頭, 狀態200:OK, 內容text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
//發送響應數據 "Hello world"
response.end("Hello world");
}).listen(8888);
console.log("Server running at http://localhost:8888 ");
- 啟動
node server.js
3. 使用NPM
NPM是隨著NodeJS一起安裝的管理工具, 能解決NodeJS代碼部署上的很多問題, 常見的應用場景:
- 允許用戶從NPM服務器下載別人編寫的第三方包到本地使用。
- 允許用戶從NPM服務器下載并安裝別人編寫的命令行程序到本地使用。
- 允許用戶將自己編寫的包或命令行程序上傳到NPM服務器供別人使用。
3.1 使用NPM命令安裝模塊
npm install <Module Name>
如:
npm install express //本地安裝
npm install express -g //全局安裝
引用模塊:
var express = require("express");
npm的包安裝分為本地安裝和全局安裝, 如果兩個都需要, 可以用兩種方式安裝它或者使用npm link
.
查看全局安裝的模塊:
npm ls -g
4. 使用package.js
package.json 位于模塊的目錄下,用于定義包的屬性。
package.json屬性說明: http://www.runoob.com/nodejs/nodejs-npm.html
// 卸載模塊
npm uninstall express
// 更新模塊
npm update express
// 搜索模塊
npm search express
// 創建模塊
npm init
// 注冊npm用戶信息
npm adduser
// 發布模塊
npm publish
使用NPM下載和發布代碼時都會接觸到版本號。NPM使用語義版本號來管理代碼,這里簡單介紹一下。
語義版本號分為X.Y.Z三位,分別代表主版本號、次版本號和補丁版本號。當代碼變更時,版本號按以下原則更新。
- 如果只是修復bug,需要更新Z位。
- 如果是新增了功能,但是向下兼容,需要更新Y位。
- 如果有大變動,向下不兼容,需要更新X位。
如果嫌棄npm太慢, 也可以用淘寶的鏡像. 參閱: http://npm.taobao.org/。
5. Node.js REPL(交互式解釋器)
http://www.runoob.com/nodejs/nodejs-repl.html
Node.js REPL表示一個電腦環境, 我們可以在終端輸入命令, 并接收系統的響應.
Node的交互解釋器可以很好的調試javascript代碼.
// 啟動node終端
$ node
// 簡單的運算
> 1 +4
5
// 使用變量
> x = 10
10
> var y = 10
undefined
> x + y
// 使用`_`獲取表達式的運算結果
> x + y
30
> var sum = _
常用REPL指令
**ctrl + c** - 退出當前終端。
**ctrl + c 按下兩次** - 退出 Node REPL。
**ctrl + d** - 退出 Node REPL.
**向上/向下 鍵** - 查看輸入的歷史命令
**tab 鍵** - 列出當前命令
**.help** - 列出使用命令
**.break** - 退出多行表達式
**.clear** - 退出多行表達式
**.save *filename*** - 保存當前的 Node REPL 會話到指定文件
**.load *filename*** - 載入當前 Node REPL 會話的文件內容。