Windows系統下nodejs安裝及配置

關於nodejs中文站,目前活躍度最好的知識站應該是http://www.cnodejs.org/ ,而http://cnodejs.org/則活躍度較低。Express.js是nodejs的一個MVC開發框架,而且支持jade等多種模板,是Node.js上最流行的Web開發框架。這幾天剛接觸PhoneGap,之前也看了一些nodejs的基礎但苦於時間有限一直沒機會親自搭建一個nodejs環境,今天週末,部署了PhoneGap到Android,順便一同搭建了一下nodejs本地環境,本身的操做步驟以下:

第1步:下載、安裝文件

代開nodejs的官網http://www.nodejs.org/download/ 下載最新版本,下載完成以後,雙擊 node-v0.10.20-x86.msi,開始安裝nodejs,默認是安裝在C:\Program Files\nodejs目錄。安裝好後系統默認的環境變量path是C:\Documents and Settings\Administrator\Application Data\npm;能夠根據須要手動指向本地安裝目錄,如:C:\Program Files\nodejs\node_modules\npm將全局目錄設置設爲本地初始默認安裝目錄一致。


第2步:安裝相關模塊環境css


打開C:\Program Files\nodejs目錄你會發現裏面自帶了Npm這個nodejs插件的管理工具,直接用Npm安裝相關須要的相關模塊便可(其餘有些系統可能須要單獨安裝NPM下載地址https://github.com/isaacs/npm,也可直接用Git工具下載git clone --recursive git://github.com/isaacs/npm.git下載完成後,命令行首先定位到npm包所在目錄,輸入代碼node cli.js install npm -gf 進行安裝。)

系統開始菜單--程序--進入node.js command prompt 命令窗口

鍵入命令:cd C:\Program Files\nodejs 便可進入nodejs 安裝目錄 C:\Program Files\nodejs

如今開始安裝相關模塊環境

node模塊的安裝分爲全局模式和本地模式。通常狀況下會以本地模式運行,包會被安裝到和你的應用代碼統計的本地node_modules目錄下。在全局模式下,Node包會被安裝到Node的默認安裝目錄下的node_modules下。

第一種方法是鍵入命令:npm install express 默認安裝express的最新版本。若在後面加版本號可安裝指定版本,如npm install express@3.0.6 回車開始安裝express,安裝完成後會在當前目錄下的node_modules文件夾下多出express相關的兩個文件夾express和.bin。

另外一種全局安裝方式是鍵入命令:npm install express -g  ,安裝完成命令行會提示 npm info ok。參數-g的含義是表明安裝到全局環境裏面。若是沒有-g的話會安裝到當前node_modules目錄下(如無則新建node_modules文件夾)。我的不建議初學者使用這種將包安裝到全局環境中的作法,由於在js實例代碼中,直接經過require()的方式是沒有辦法調用全局安裝包的,報錯 throw err;Error: Cannot find module 'express' ,此時能夠將node_modules整個文件夾複製一份到你的項目工程下。全局的安裝是供命令行使用的,使用全局方式安裝後,用戶就能夠在命令行中直接運行該組件包支持的命令,好處是能夠提升程序的重複利用程度,避免一樣的內容存在多份副本。缺點是難以處理不一樣的版本依賴。這裏的require()是node.js內置函數,用來引入其餘模塊以備代碼中調用模塊的函數和變量,默認下node.js會在NODE_PATH和目前js所在項目目錄下的node_modules文件夾下去尋找模塊。所以,若是是全局安裝,不復制系統安裝node_modules文件夾到項目node_modules文件夾下,還能夠選擇將環境變量的NODE_PATH設置爲C:\Program Files\nodejs,設置完成後再去項目目錄運行命令node app.js就不會報錯了。express.js繼承自connect模塊,因此若你的node_modules文件夾下沒有connect模塊也是不能運行的。
以上爲本人的經驗總結。後來查閱文檔發現國外有更爲詳細的答覆:
援引Marek的問題Error: Cannot find module ‘express’的解答:

This problems seems to be quite popular among Windows users. It seems to occur after node has been reinstalled or updated  or when hidden attribute has been removed from  C:\Users\IMaster\AppData folder.  It might be one of those things that can make you feel bad especially if you don’t wont to apply some quick hacks like:  npm link express

Node returns error because is not able to find required module and that is why problem in most cases is actually easy to fix. First place to check would be require.paths. After typing it in node console I received:
Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.

At the time of writing I am using v0.6.19 but you might see this or similar warning if you using newer version.

As stated  you have 2 choices. You can install express (or another module) to local node_modules directory using npm install express or after installing module globally
    
npm install express -g

you can link it with your current project using
    
npm link express

Second and last option is to create or update  NODE_PATH system variable pointing your node to the right place in the system. If you are Windows user use export command as shown below:
    
export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"

Now you should update PATH variable as well
    
set PATH=%PATH%;%NODE_PATH%

Try to run your module now.

You should be fine.

安裝完成Express後運行node app.js 瀏覽器輸入http://localhost:3000可預覽即代表express安裝成功。

這裏提示Express 500 Error: Cannot find module 'jade' 說明jade模塊沒有安裝,windows無須手動下載jade包,已集成(若是其餘地方須要,可在此下載https://github.com/visionmedia/jade)。輸入npm install jade進行安裝便可。
jade安裝完成後如圖:

關於 Express.js 中文入門指引手冊能夠參考http://www.csser.com/board/4f77e6f996ca600f78000936
其餘組件還有不少,如mysql,能夠根據我的須要能夠選擇進行安裝。
默認狀況下組件都是安裝在C:\Program Files\nodejs\node_modules文件夾下,這也是nodejs相關組件的自動查找路徑。

第3步:測試項目工程

如今安裝了express組件,嘗試鍵入:express myapp 創建一個名爲myapp的工程,目錄下多了一個 myapp 文件夾。
是否須要複製node_modules文件夾到myapp下面由上述npm express安裝方式決定

在myapp下新建helloworld.js代碼以下:html


var http = require("http");

http.createServer(function(request, response) {

response.writeHead(200, {"Content-Type": "text/plain"});

response.write("Hello World");

response.end();

}).listen(8080);

console.log('Server running at http://127.0.0.1:8080/');


進入node.js command prompt 命令窗口,進入C:\Program Files\nodejs\myapp目錄

鍵入node helloworld.js

瀏覽器輸入http://localhost:8080或者地址http://127.0.0.1:8080/

頁面輸出 :Hello World

第4步:安裝supervisor提升nodejs調試效率

這一步不是必須,只是爲了提升nodejs開發效率的輔助操做。以往咱們開發PHP項目,代碼每修改一次,能夠直接打開瀏覽器預覽效果,不需手動重啓服務。可是開發nodejs程序,調試的時候,不管你修改了代碼的哪一部分,都須要重啓服務才能生效。這是由於 Node.js 只有在第一次引用到某部份時纔會去解析腳
本文件,之後都會直接訪問內存,避免重複載入。。Node.js的這種設計雖然有利於提升性能,卻不利於開發調試,由於咱們在開發過程當中老是但願修改後當即看到效果,而不是每次都要終止進程並重啓。supervisor 能夠幫助你實現這個功能,它會監視你對代碼的改動,並自動重啓 Node.js。

supervisor的安裝也很簡單:

直接用npm安裝既可,鍵入命令: npm install supervisor -g 而後程序自動下載supervisor安裝包到本地開始安裝。

這裏注意一點的就是,supervisor必須安裝到全局,若是你不安裝到全局,錯誤命令會提示你安裝到全局。

若是不想安裝到默認的全局,也能夠本身修改全局路徑到當前路徑

npm config set prefix "路徑"

安裝完之後就能夠用supervisor 來啓動服務了。

supervisor app.js

補充:npm經常使用命令

      (1)npm install moduleNames

               安裝Node模塊

               注意事項:若是在使用模塊的時候不知道其名字,能夠經過http://search.npmjs.org網站按照

                                索引值找到想要的模塊。npm也提供了查詢的功能  npm search indexName

                                 安裝完畢後會產生一個node_modules目錄,其目錄下就是安裝的各個node模塊。

                                 node的安裝分爲全局模式和本地模式。通常狀況下會以本地模式運行,包會被安裝

                                到和你的應用代碼統計的本地node_modules目錄下。在全局模式下,Node包會被

                                安裝到Node的安裝目錄下的node_modules下。全局安裝命令爲

                                npm install -g moduleName。獲知使用npm set global=true來設定安裝模式

                              ,npm get global能夠查看當前使用的安裝模式。npm install <name> --save  安裝的同時,將信息寫入package.json中

                                項目路徑中若是有package.json文件時,直接使用npm install方法就能夠根據dependencies配置安裝全部的依賴包

                                這樣代碼提交到github時,就不用提交node_modules這個文件夾了。


       (2)npm view moduleNames

                 查看node模塊的package.json文件夾

                注意事項:若是想要查看package.json文件夾下某個標籤的內容,可使用

                                 npm view moduleName labelName

       (3)npm list

                查看當前目錄下已安裝的node包。同命令npm ll/npm ls/npm la

                注意事項:Node模塊搜索是從代碼執行的當前目錄開始的,搜索結果取決於當前使用的目錄中

                                 的node_modules下的內容。 npm list parseable=true能夠目錄的形式來展示當

                                 前安裝的全部node包

       (4)npm help

                查看幫助命令。若是要單獨查看install命令的幫助,可使用的npm help install

       (5)npm view moudleName dependencies

                查看包的依賴關係

       (6)npm view moduleName repository.url

               查看包的源文件地址

       (7 npm view moduleName engines

               查看包所依賴的Node的版本

      (8)npm help folders

                查看npm使用的全部文件夾

      (9)npm rebuild moduleName

                用於更改包內容後進行重建

      (10)npm outdated

                 檢查包是否已通過時,此命令會列出全部已通過時的包,能夠及時進行包的更新

      (11)npm update moduleName

                     更新node模塊

      (12)$ npm uninstall moudleName

                      卸載node模塊

      (13)一個npm包是包含了package.json的文件夾,package.json描述了這個文件夾的結構。訪

                      問npm的json文件夾的方法以下:

                            npm help json

                      此命令會以默認的方式打開一個網頁,若是更改了默認打開程序則可能不會以網頁的形式打

                      開。

      (14)發佈一個npm包的時候,須要檢驗某個包名是否已存在

                    npm search packageName

      (15)不少時候咱們在使用一個npm包的時候常常會忘記了require其相互依賴的模塊,咱們能夠

                     藉助如以下命令來查看此模塊相互依賴的包都有哪些



      (16)npm init  會引導你建立一個package.json文件,包括名稱、版本、做者這些信息等

      (17)npm rm <name>移除,卸載一個模塊。有如下幾種命令形式:
                    npm rm <name>
                    npm r <name>
                    npm uninstall <name>
                    npm un <name>



      (18)npm root 查看當前工程的包的安裝路徑,npm root -g  是查看全局的包的安裝路徑

      (19)npm docs <packageName> 嘗試當前包對應的文檔URL,並使用瀏覽器打開該文檔。

      (20)npm config ? 獲取配置文件信息,如環境變量,npmrc文件,package.json

       更多命令請參看官方文檔https://npmjs.org/doc/

本文參考文檔:

1 . Error: Cannot find module ‘express’ http://blog.i-evaluation.com/2012/09/17/error-cannot-find-module-express/
2 . Node.js Manual & Documentation  http://nodejs.org/docs/v0.4.1/api/modules.html
3. nodejs-win  http://code.google.com/p/nodejs-win/
4 . nodejs官方文檔  https://npmjs.org/doc/
如下爲拓展連接:
Node + Redis = Fun          http://howtonode.org/node-redis-fun
Node.js家園        http://nodejs.gamesys.net/page/11
Nodejs開源應用  http://obullxl.duapp.com/
相關文章
相關標籤/搜索