天天看點

Nodejs+Extjs+Mongodb開發第一天 Nodejs環境搭建

我個人pc環境是ubuntu14+jdk7,是以下面的步驟及問題也是基于此進行及産生的。

這個安裝的過程在網上有很多教程,這裡就不詳細講了。

檢視nodejs的版本,網上很多教程都寫的是:

但一直node指令找不到的異常,使用以下指令執行成功:

終端顯示:

經測試,ubuntu下nodejs的指令是nodejs,而windows平台的是node。

檢視npm版本是

簡單介紹:

在開發 node.js 實作的 http 應用時會發現,無論你修改了代碼的哪一部份,都必須終止 node.js 再重新運作才會奏效。這是因為 node.js 隻有在第一次引用到某部份時才會去解析腳 本檔案,以後都會直接通路記憶體,避免重複載入。node.js的這種設計雖然有利于提高性能,卻不利于開發調試,因 為我們在開發過程中總是希望修改後立即看到效果,而不是每次都要終止程序并重新開機。

supervisor 可以幫助你實作這個功能,它會監視你對代碼的改動,并自動重新開機 node.js。

a) 全局安裝 (我的選擇)

b) 安裝在目前檔案夾下 

安裝成功後,指令行會提示 npm info ok

-g代表安裝到node_path的lib裡面,而-d代表把相依性套件也一起安裝。如果沒有-g的話會安裝目前所在的目錄(會建立一個node_modules的檔案夾)。

通過以下指令了檢視supervisor的幫助文檔,

終端顯示:

經查找後,發現npm在安裝子產品的時候,會把源碼及執行檔案分開。

注意:這裡也是和網上的大部分教程不一樣的地方,網上的教程都說源碼及執行檔案都是放在/usr/local/lib/node_modules 目錄下的,估計是npm版本不同的原因。

找到并檢視supervisor的執行檔案:

看到supervisor的介紹,我們很容易得知,這個小子產品的主要功能有兩個:

1、關閉正在執行的項目

2、啟動前面關閉的項目

這裡報的錯誤是沒有找到node,而且很清楚地發現執行檔案的第一行使用的指令是!/usr/bin/env node ,回想前面檢視nodejs版本的指令。項目啟動用到的應該是nodejs本身的指令nodejs,

于是将這一行修改如下進行嘗試,問題得到解決。

終端顯示supervisor的幫助如下:

注意:根據幫助文檔,檢視supervisor的指令是supervisor -v 。指令中的v是大寫,安裝過程中我發現windows下小寫也行,但在我的ubuntu14的環境下必須是大寫。

在安裝完後,express與supervisor一樣,也存在nodejs指令不符合的問題,同樣的方式找到執行檔案進行修改此指令即可。

安裝完了express,如果版本是4.0及以上的話,還要安裝另外一個子產品,express才能使用。

cd 到test目錄的上級目錄,執行以下指令

執行完後,回到項目目錄檢視:

package.json :

app.js:

bin/www:

cd到test目錄下

終端顯示異常:

還是node指令的問題,修改package.json 檔案中的

bin/www檔案中的

執行成功

Nodejs+Extjs+Mongodb開發第一天 Nodejs環境搭建

npm是什麼東西呢?大部分的java程式員都使用過maven。而npm的職能與maven相似,是nodejs的包管理工具,可以使用它來下載下傳包、檢視檔案等功能用express建立的應用程式是一個符合commonjs規範的一個nodejs包npm執行的時候會讀取目前目錄的package.json檔案,這個也就是我上面那個bug出現的原因執行npm start其實是執行package.json中的script對應的對象中的start屬性所對應的指令。

是以其實如果吧package.json中的start改成test或者其他字元串,然後你在終端敲上npm test/或者其他,程式照樣會運作 。

其實package.json就是一個配置檔案,隻是我們之前用的xml格式,但是在nodejs用的是json可以,簡單容易了解。從package.json我們可以看出來npm start其實執行的是./bin/www裡面是建立一個伺服器然後監聽3000端口,是以我們可以在浏覽器中通過輸入"localhost:3000"來通路應用程式。

npm start 是啟用的 /bin/www檔案裡的腳本 

如果你想用nodejs 啟動服務 可以在app.js中添加如下代碼 

注意:上面的語句得加在module.exports = app;之前。

得到同樣的結果。

 使用supervisor進行熱部署的執行友善調試

這裡解決的過程就不詳細說了,重點是--exec 'node'這個,會發現supervisor執行的還是node指令,而不是nodejs。修改supervisor源檔案目錄下的supervisor.js檔案

再次執行成功,項目修改後,nodejs也會自動重新開機。

一開始選擇的是nodeclipse,但用起來确實不怎麼完善。于是選擇webstorm。

關于ide使用及nodejs的使用,在以後使用的過程中會再發文章記錄。