The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在Windows作業系統安裝 Node.js 執行環境 (WebMatrix)

昨天本來很想去參加HTML5與Node.js在台灣聯合技術小聚,礙於有要事在身無法參加實在可惜,最近剛好看到 Tomasz Janczuk 開發出 iisnode 專案,一整個超強的,可以用非常直覺的方式在 Windows 平台與 IIS 來管理 node.js 應用程式,還能用 WebMatrix 進一步整合開發環境,所以特別撰文告知 node.js 迷這個好消息。 :-)

本篇文章我就不介紹太多關於 node.js 的基本介紹了,有興趣瞭解的人可以參考以下網址:

要在 Windows 安裝 node.js 已經不像以前要先安裝 Cygwin 才能用,現在已經有 Windows 原生版node.js 可用,甚至於還有原始碼可下載自行透過 VC++ 來編譯

不過這都不是我今天想講的重點,今天的重點在於用最懶惰的方式透過 WebMatrix 安裝、設定與執行 node.js 應用程式,步驟有多簡單絕對超乎你的想像! ^_^

步驟一:使用 Web PI 安裝 WebMatrix ( 請參考文章說明進行安裝 )

 

步驟二:安裝 iisnode for iis 7.x

此步驟安裝好之後會有兩個安裝目錄存放檔案:

  1. iisnode 主程式與範例程式:%LOCALAPPDATA%\iisnode
  2. node.js for Windows:C:\Program Files (x86)\nodejs

 

步驟三:安裝 node.js templates for WebMatrix

 

安裝完成!

什麼?只有三個步驟? Yes!

 

以下我們來看看怎樣架設基本的 node.js 開發環境有哪些步驟:

步驟一:開啟 WebMatrix

 

步驟二:選擇「依據範本的站台」

3. 選取站台範本,在這裡會有兩個跟 Node.js 相關的範本

Empty Node.js Site

此站台範本就是一個很基本的 Hello World 範例,讓你從頭打造 node.js 應用程式!

Node.js Express Site

此站台範本包含了 node.js 的 express module,有個基本的網站開發架構,可以讓你用 MVC 架構來開發 node.js 網站應用程式!

 

步驟三:執行 node.js 網站

WebMatrix 開發工具裡直接按下「執行」按鈕,node.js 網站就跑起來了,如下圖示:

 

開發環境設定完成!

什麼?只有三個步驟? Yes! 今後你只要直接在 WebMatrix 修改 node.js 的程式碼,然後立即按下「執行」按鈕(或按下 F12 功能鍵),就可以立即看到程式修改後的結果!

 

其他補充說明

1. 使用 iisnode 執行效能較差,但真的很方便做開發測試。
(相較於 Windows 原生的 node.exe 來執行網站,我實測 RPS 大約差 15 倍之多)

2. 比起直接使用 node.exe 來執行程式,使用 iisnode 還有以下優點:

  • 程序管理:由 IIS / IIS Express 幫你管理 node.exe 的執行生命週期,省去管理的麻煩。
    (效能問題日後隨著時間演進一定能解決)
  • 延展性高:因為 node.exe 一個程序只會用到一個執行緒,所以只能用到一個 CPU 核心的運算能力,像我自己在我的四核心 CPU 的桌機用 ab 做壓力測試時,一個 node.exe 只能用到四分之一的運算資源而已,不過即便如此,我測得的 RPS 竟然還有 7402.03 #/sec 之多!
  • 自動更新:使用原生的 node.exe 無法偵測你的 js 應用程式有異動,透過 iisnode 會自動管理 node.exe 的生命週期,當程式有異動時會先消化完尚未處理的要求後自動回收正在執行的 node.exe 程序,並重新啟動一個新的 node.exe 接收新的要求。
  • 透過 HTTP 存取偵錯紀錄:撰寫 node.js 時可能會利用 console.log() 方法來寫一些執行時期的紀錄檔,透過 iisnode 可以直接透過 HTTP 存取這些記錄資訊,對於遠端執行的 node.js 應用程式來說非常方便。
  • 要搬移現有的 node.js 的程式碼到 iisnode 不需修改太多程式碼,頂多只會需要修改 Listen 的 Port 而已,透過 WebMatrix 管理的話 Port 是透過如下圖的方式管理的:
  • 與 IIS 完美結合,連設定 node.js 的執行環境都可以透過 web.config 定義,例如:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="hello.js" verb="*" modules="iisnode" />
    </handlers>
    <iisnode
      nodeProcessCommandLine="%systemdrive%\node\node.exe"
      maxProcessCountPerApplication="4"
      maxConcurrentRequestsPerProcess="1024"
      maxPendingRequestsPerApplication="1024"
      maxNamedPipeConnectionRetry="3"
      namedPipeConnectionRetryDelay="2000"
      asyncCompletionThreadCount="4"
      initialRequestBufferSize="4096"
      maxRequestBufferSize="65536"
      uncFileChangesPollingInterval="5000"
      gracefulShutdownTimeout="60000"
      loggingEnabled="true"
      logDirectoryNameSuffix="logs"
      maxLogFileSizeInKB="128"
      appendToExistingLog="false"
     />
  </system.webServer>
</configuration>
  • iisnode for iisexpress 安裝好之後有包含幾個範例程式位於 %LOCALAPPDATA%\iisnode\www,你可以利用 WebMatrix 開啟該目錄,即可執行這些範例 node.js 程式:



 

相關連結