鍍金池/ 教程/ HTML/ 搭建 Node.js 開發(fā)環(huán)境
瀏覽器端測試:mocha,chai,phantomjs
搭建 Node.js 開發(fā)環(huán)境
測試用例:mocha,should,istanbul
線上部署:heroku
Mongodb 與 Mongoose 的使用
使用 superagent 與 cheerio 完成簡單爬蟲
js 中的那些最佳實(shí)踐
使用 eventproxy 控制并發(fā)
使用 promise 替代回調(diào)函數(shù)
作用域與閉包:this,var,(function () {})
持續(xù)集成平臺:travis
測試用例:supertest
benchmark 怎么寫
使用 async 控制并發(fā)
學(xué)習(xí)使用外部模塊
一個最簡單的 express 應(yīng)用
正則表達(dá)式
cookie 和 session

搭建 Node.js 開發(fā)環(huán)境

本課程假設(shè)大家都是在 Linux 或者 Mac 下面。至于使用 Windows 并堅(jiān)持玩新技術(shù)的同學(xué),我堅(jiān)信他們一定有著過人的、甚至是不可告人的兼容性 bug 處理能力,所以這部分同學(xué)麻煩在課程無法繼續(xù)時(shí),自行兼容一下。

不久前公司剛發(fā)一臺新 Mac 給我,所以我對于在新環(huán)境中安裝 Node.js 的過程還是記憶猶新的。

其實(shí)這過程特別簡單:

先安裝一個 nvm( https://github.com/creationix/nvm

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash

nvm 的全稱是 Node Version Manager,之所以需要這個工具,是因?yàn)?Node.js 的各種特性都沒有穩(wěn)定下來,所以我們經(jīng)常由于老項(xiàng)目或嘗新的原因,需要切換各種版本。

安裝完成后,你的 shell 里面應(yīng)該就有個 nvm 命令了,調(diào)用它試試

$ nvm

當(dāng)看到有輸出時(shí),則 nvm 安裝成功。

安裝 Node.js

使用 nvm 的命令安裝 Node.js 最新穩(wěn)定版,現(xiàn)在是 v0.12.3。

$ nvm install 0.12

安裝完成后,查看一下

$ nvm ls

這時(shí)候可以看到自己安裝的所有 Node.js 版本,輸出應(yīng)如下:

http://wiki.jikexueyuan.com/project/node-lessons/images/0-1.png" alt="" />

(圖1)

那個綠色小箭頭的意思就是現(xiàn)在正在使用的版本,我這里是 v0.10.29。我還安裝了 v0.11.14,但它并非我當(dāng)前使用的版本。

如果你那里沒有出現(xiàn)綠色小箭頭的話,告訴 nvm 你要使用 0.12.x 版本

$ nvm use 0.12

然后再次查看,這時(shí)候小箭頭應(yīng)該出現(xiàn)了。

OK,我們在終端中輸入

$ node

REPL(read–eval–print loop) 應(yīng)該就出來了,那我們就成功了。

隨便敲兩行命令玩玩吧。

比如 > while (true) {},這時(shí)你的 CPU 應(yīng)該會飚高。

完善安裝

上述過程完成后,有時(shí)會出現(xiàn),當(dāng)開啟一個新的 shell 窗口時(shí),找不到 node 命令的情況。

這種情況一般來自兩個原因

一、shell 不知道 nvm 的存在

二、nvm 已經(jīng)存在,但是沒有 default 的 Node.js 版本可用。

解決方式:

一、檢查 ~/.profile 或者 ~/.bash_profile 中有沒有這樣兩句

export NVM_DIR="/Users/YOURUSERNAME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

沒有的話,加進(jìn)去。

這兩句會在 bash 啟動的時(shí)候被調(diào)用,然后注冊 nvm 命令。

二、

調(diào)用

$ nvm ls

看看像不像上述圖1中一樣,有 default 的指向。

如果沒有的話,執(zhí)行

$ nvm alias default 0.12

$ nvm ls

看一下