上周末開始看NodeJS,一路下來從安裝到入門代碼都遇到了一些問題,今天總算解決了一點,寫下來分享一下:
安裝部分:
1. 首先我的系統是windows 8,所以這里只拿node在windows下的安裝步驟跟大家講。node的下載地址是:http://nodejs.org/download/
可以看到windows系列有兩類安裝文件可以使用:exe文件和msi文件。區別是msi需要安裝,而且安裝后會把相關的執行文件寫到系統環境變量,並且
還集成了其它的node插件,比如NPM。
但是當我裝完msi文件,再去安裝express的時候,就遇到問題了。所以如果大家不想折騰那就跟我一樣,下載一個node.exe文件。
2. 在D:\ 創建文件夾NodeJS把下載到的node.exe放到該文件夾下面。純純的一個node環境就算裝完了,接下來在當前目錄下 按住shift並點擊鼠標右鍵,
選擇在當前目錄下打開命令行工具。
> node -v 輸出版本信息,驗證安裝是否成功。
> node -h 查看幫助,列出了幾個簡單指令的使用。
試着把 路徑 D:\NodeJS寫入系統環境變量的path中就可以在任意地方執行node命令了。
3. 安裝npm。這個工具應該是個插件的管理工具,后面安裝插件時會依賴它,所以要先把它安裝好。
下載這個文件:https://github.com/isaacs/npm/zipball/v1.0.104 在D:\NodeJS\下創建npmjs目錄,下載的文件解壓到npmjs,如下圖。
其中有個node_modules文件夾,里面的文件夾都是空的,從 這里 下載一個新的node_modules,替換前面那個。
4. 在 D:\NodeJS\npmjs文件夾下打開命令行工具 執行 >node install npm -gf (當我做這一步時,提醒我版本不對,應該用0.4、0.5、0.6版,
所以我換成了0.6版的node.exe, 這樣就安裝好nmp了)
執行 >npm -v 查看版本,驗證是否成功安裝。
5. 安裝express。在D:\NodeJS 目錄打開cmd,執行 npm install express -g 。注意,安裝過程有點長,耐心等待,不要覺得沒反應就是失敗了。
執行 >express -V 查看版本驗證安裝是否成功。特別注意這里的V是大寫的。
上面的幾步大多是借鑒園友 Sean Lv 的 文章 ,但由於照搬操作還是遇到了一些問題,所以重新組織了一下,也順便加了幾個自己發現的問題。
6. 這一步是來安裝一個小工具:formidable。我在下面的練習中用到了,所以也在這兒寫一下吧。
執行 > npm install formidable 命令完成安裝,注意一點:如果使用的Node.exe版本過高會安裝失敗的,需要0.9及以下版本。
NodeJS入門:
下面開始講如何入門nodejs,這里我推薦一本在線書籍《Node入門》地址:http://www.nodebeginner.org/index-zh-cn.html其實很多人都會推薦這
本書,寫的不錯的。但讓人很不爽的是好多國內同胞直接粘貼人家的文章到自己的博客里裝B。其實我今天晚上剛看完這本書,現在主要是就里面遇到的
問題跟大家分享一下,如果大家不是看這本書來入門的,那下面的內容就可以繞過了。
1. 書中講到下面這個函數:
function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); }
其中的 while (new Date().getTime() < startTime + milliSeconds);我有點蒙,while循環還能這樣寫,是不是代碼錯了,執行后發現這沒問題,只是每
次循環都只判斷沒操作。
2. server.listen(8888).來監聽端口,但是當你多次重復請求操作時會產生沖突,導致node指令報錯,這時改一下端口號就行了,我改過8821、8823等。
3. 在做非阻塞處理時有exec("find /",function(error,stdout,stderr){...})。其中的一個參數"find /"指的是linux下的指令當然還有"ls -lah",如果是在
windows下操作的話,這個地方一定報錯,可以把它換成"dir"試一下。
4. 在后面那個上傳圖片的例子中執行var form = new formidable.IncomingForm();時總是執行不通過,后來發現又是版本問題,我下載了1.0版本的
覆蓋了之前的,這個地方就能通過了。
5. 同上的例子fs.renameSync(files.upload.path,"/temp/test.png");報錯,把renameSync改為rename就好用。真正的原因下面的文章里有講。
最后,我剛把所有的代碼都調出來了,結果從網上查到一篇文章,是專門分析這本書不足之處的。要是早看到該多好啊,哈哈。下面是鏈接,推薦大家:
http://cnodejs.org/topic/4f348e5ec420ea662d026df2
最后,俺也是剛開始嘗試寫node,希望跟大家多多交流啊,俺的微博是:http://weibo.com/319111988
--------------------------------------------------------------更新-------------------------------------------------------------
旅行回來重新開始折騰node,發現上面的安裝過程已經不好使了,更新新的方式如下:
1. 直接下載msi文件,點擊安裝后會自帶把npm工具也安裝上了,在node_modules下面會發現npm文件夾。
2. npm install express -g 安裝express工具。
-g的作用是把express安裝到全局的環境下,具體的意思就是把express文件夾(內含相關組件)安裝在了 用戶\AppData\Roaming\npm\node_modules下面,而不是安裝在當前目錄下面的node_modules下面,這樣做的作用是只對命令行操作有好處,無論在哪個目錄下打開命令行都能執行express操作。但問題是在具體的express項目中不會自定引入express組件。
3. express -V 查看版本號。
4. express hello 創建一個hello項目。cd hello ; node app.js此時出現錯誤。原因就是在第2步中所說的問題了,express不會自動導入到具體的項目中,現在的解決方法 1.再安裝一遍express這次用npm install express 指令,不加-g。2.直接從用戶\AppData\Roaming\npm\node_modules位置把整個express文件夾放到nodejs文件夾下的node_modules中。
5. 有時也會報缺少jade錯誤,npm install jade即可!
-----------------------------------------繼續跟進 2014.3.28-----------------------------------------
NND,msi文件的64位在windows上無法安裝了。32bit的一切正常