實際上在開始的時候我已經對NodeJS有了一定的了解。
比如我知道它是居於Javascript語言的服務器端web Server,比如我知道它的優勢在於它的性能,而造成性能優異的原因在於高效的V8引擎,也就是編譯器,以及其它一些語言層面的東東,無非就是JS一些語言的特點,函數,異步,回調之類的。
但是在具體學習的時候,我還是遇到了開始時候想象不到的很多困難,下面就是對學習過程的一個簡單記錄。
1.
當然是Google開始
第一條搜索記錄顯然就是www.NodeJS.org這個官方網站,很簡潔的網站。
發現最中間好大的一個Download按鈕,不管許多,下載之。發現是一個msi文件,那還考慮什么,安裝吧。(Windows OS)
安裝的過程很簡單。
后來才發現,在Linux下和Mac下都要比Windows下折騰麻煩一些,Windows下的青年們果然都是小白。(目前還只是在windows下折騰)
2.
OK,開始程序員的永遠的第一步“Hello World”。
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8080);
這樣就完事了,將這幾句話copy近一個server.js的文件中,然后你需要打開命令行(強烈推薦使用PowerShell,我現在都沒有搞明白用CMD的話除了關掉窗口怎么停止或者Restart),運行
node server.js
接下來,打開瀏覽器訪問http://localhost:8080/,你會看到一個寫着“Hello World”的網頁。
這幾句話應該都能看明白,不解釋了。
3.
接下來自然而然的就想如何弄Web Socket的Server了,於是繼續Google之,發現需要安裝NodeJS的模塊socket.io(這東西個人的理解就是類似於Java中的第三方庫的意思)
安裝模塊的方式一般是通過NPM,對於NPM完全沒有概念,於是繼續Google之。
找到一篇文章介紹NPM的http://howtonode.org/introduction-to-npm,看了下,大概有了一些了解。(文章不錯,推薦下)
NPM就是NodeJS Package Management的縮寫。目前的NodeJS已經自帶NPM了。
這里簡單介紹幾個npm 命令,
npm list – 查看當前安裝的模塊
npm version – 查看當前npm的版本
npm install – 安裝新模塊
npm update – 更新模塊
npm help – 幫助(這個最重要)
其它命令可以去幫助文件中查詢,或者敲擊最上面的npm help命令
安裝的命令很簡單,你可以運行 npm help install獲取更多幫助(發現npm的幫助文件做的相當的不錯,例如運行上面的命令會自動打開一個htm幫助文件)
npm Install socket.io
npm install express
有些文章會提示這個命令可以加上-g或者-d(如果不試用-g的話,會發現express命令不好用,原因暫不清楚),例如
npm install –g socket.io
搜索了下-g,-d是什么意思,在config的幫助文件中找到了答案
按照幫助文件的說法,-g,-d其實就是Shorthand(縮記),說白了就是縮記符,他們分別代表的是
g – global
d – log lever info
還有其它的一些縮記符,你可以在幫助文件中找到他們
上面的縮記符的影響如下:
如果你添加了-g的話,則會將NodeJS模塊安裝到C:\Users\User Name\AppData\Roaming\npm\node_modules這個路徑下,如果沒有添加的話,則會安裝到你的NodeJS的安裝路徑的node_modules路徑下
注意:這里有個很重要的區別,如果是選擇-g也就是全局安裝的話,你可以直接在命令行中使用express,jade等命令,原因在於安裝NodeJS的時候,會自動將C:\Users\User Name\AppData\Roaming\npm\node_modules這個路徑添加到系統的環境變量中。
如果不添加-g的話,如果要使用express,jade等命令,則需要在NodeJS的node_modules目錄中尋找到express命令所在的.bin目錄,才可以正常使用。
如果添加了-d的話,則會顯示所有的安裝日志信息
4.
於是開始安裝模塊,看起來很簡單,但是這個時候問題出現了,我怎么都連接不上服務器
總是提示這個錯誤
npm http GET https://registry.npmjs.org/express
Error: failed to fetch from registry
看了下這個命令和執行過程,懷疑是下載一些包和文件之類的東東回來。
由於我是在單位折騰的,所以懷疑是網絡環境的問題,因為沒有辦法通過服務器的審查,所以不允許下載。
(1) 最開始想到的辦法是將https改為http,不使用ssl這樣的https傳輸協議,於是找到了修改配置的命令
npm config set registry http://registry.npmjs.org/express
npm config set strict-ssl false
更改之后,發現無效
(2) 因為其實就是下載文件,所有有的網站提到了可以將默認的http://registry.npmjs.org/express更改為其它網站,並給了幾個網址,可以通過上面的更改配置的方式更改,還是無效
(3) 最后無奈換了個網絡環境之后,發現可以安裝了,感覺應該是下載了安裝包,不會有其它變化(比如寫入注冊表之類的),所以將整個目錄copy了過來,並且進行了驗證,發現是好用的,你可以通過如下語句驗證
npm list
於是,環境終於算是搭建完成了,可以開始下面的工作了
幾個注意事項及總結
1. NodeJS的模塊路徑是nodejs的安裝目錄下面的node_modules子目錄,例如我的是
C:\Program Files\nodejs\node_modules
2. 很多命令都需要node執行,比如
node –v
node –help
node是一個命令行的執行程序,在NodeJS的根目錄中能夠找到
3. 很多命令都需要npm的執行,你可以在NodeJS的根目錄中找到npm.cmd這個文件
4. 幫助文檔很重要,有很多時候比Google定位問題要准確的多
5. 有准備的去找答案和瞎碰完全就是兩個概念
6. 多折騰總歸是有好處的,千萬不要怕折騰