天天看點

在Visual Studio上開發Node.js程式(2)——遠端調試及釋出到Azure

上次介紹了VS上開發Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常友善的開發和調試功能,當然很多情況下由于平台限制等原因需要在其他機器上運作程式,進而需要遠端調試功能,不過還好,NTVS提供的遠端調試也非常友善。

【題外話】

【系列索引】

  1. 在Visual Studio上開發Node.js程式——NTVS介紹及使用
  2. 在Visual Studio上開發Node.js程式(2)——NTVS遠端調試及釋出到Azure

【文章索引】

  1. NTVS遠端調試
  2. NTVS部署到Azure

【一、NTVS遠端調試】

NTVS提供了一個遠端調試代理(Remote Debug Proxy)來實作遠端調試,實際上就是不讓Node.js直接運作要調試的程式,而是去運作遠端調試代理,再由代理去執行程式以及與VS進行通信。

擷取NTVS提供遠端調試代理可以在VS裡點選“工具”->“Node.js Tools”->“Remote Debugging Proxy”->“Open Container Folder”,檔案夾中的RemoteDebug.js就是了。

RemoteDebug.js的參數為:

node RemoteDebug.js [args] <script to debug> [script args]      

即RemoteDebug.js後跟遠端調試代理的參數,然後跟待調試代碼檔案,最後跟待調試代碼檔案的參數,其中遠端調試代理支援的參數有:

-localport <port num>:本機機器(NTVS所在機器)的端口号,預設為5859

-machineport <port num>:目标機器(執行程式的機器)的端口号,預設為5858

-waitforattach:當附加成功後才執行程式,預設為在目标機器上執行完腳本立即執行程式

-breakatentrypoint:從第一條入口代碼處斷點,即執行待調試代碼時使用--debug-brk參數,預設為--debug

是以如果按預設設定的話,我們隻需要把RemoteDebug.js與待執行的代碼一同複制到目标機器上,然後執行如下語句就可以了:

node RemoteDebug.js server.js      

如果正确的話會出現類似下圖的内容:

在Visual Studio上開發Node.js程式(2)——遠端調試及釋出到Azure

然後在VS中選擇“工具”->“附加到程序”,然後在傳輸裡選擇“Node remote debuggin (unsecured)”(如下圖)。

在Visual Studio上開發Node.js程式(2)——遠端調試及釋出到Azure

然後在限定符裡輸入目标機器的位址和端口然後鍵入回車即可,正确的話将會在下方出現目标機器(如下圖),最後點選“附加”即可。

在Visual Studio上開發Node.js程式(2)——遠端調試及釋出到Azure

接下來就如同在本地調試一樣非常簡單了。

【二、NTVS部署到Azure】

部署Node.js的方式有很多種,比如可以部署在Azure的網站或者雲服務(Web Role方式)上等,目前NTVS隻支援前者。由于Azure網站是通過IIS上的iisnode子產品實作對Node.js支援的,是以除了部署程式檔案以外,還需要配置iisnode,也就是配置Web.config檔案。在NTVS裡,對Azure網站的支援展現在其兩個Azure項目模闆中,即在使用這兩個項目模闆建立項目後,會自動生成配置檔案,以友善部署使用。當然傳統的方法比如自己上傳檔案或通過代碼庫上傳檔案(參見相關連結3)部署到Azure網站或者通過Web Role方式部署到雲服務(參見相關連結4)等就不再贅述,微軟網站上都有詳細的文章。

對于NTVS建立的Azure項目,預設包括兩個Web.config檔案,分别是本地測試用的Web.config以及部署到Azure上的Web.cloud.config,兩個可以分别修改,其中後者在上傳時會自動修改名稱為“Web.config”。

釋出過程與其他項目一樣,可以自己建立配置檔案釋出到指定檔案夾或者FTP等等都可以。對于Windows Azure的項目,可以在釋出對話框的第一步“配置檔案”頁面中選擇“導入”按鈕,然後選擇“從 Windows Azure 網站導入”,然後點選登入就可以輸入自己的Windows Azure的使用者名和密碼,登入成功後就會如下圖所示,然後在下方選擇要釋出的Azure網站即可。

在Visual Studio上開發Node.js程式(2)——遠端調試及釋出到Azure

确定後VS會自動從Windows Azure上下載下傳指定網站的配置資訊,然後在第二步的“連接配接”中設定好連接配接資訊,然後一路下一步就可以将項目檔案部署到Azure網站上了。其中在最後一步,可以點選“開始預覽”檢視或選擇要上傳的檔案,對于Azure網站,其實隻需要上傳所有js檔案、Web.config檔案以及用到的相關靜态檔案即可,bin目錄及package.json和README.md都不需要上傳。其中配置檔案僅選擇Web.config檔案即可,釋出時會自動使用Web.cloud.config檔案的,而如果選擇Web.cloud.config檔案的話,則上傳後的檔案名為“Web.cloud.config”。

在Visual Studio上開發Node.js程式(2)——遠端調試及釋出到Azure

不過不知道為什麼在我這,在釋出成功後通路Azure網站會提示“You do not have permission to view this directory or page.”,就跟沒有正确配置Web.config一樣,是以隻能重新上傳一遍Web.config來解決。不過如果不修改Web.config檔案話,之後釋出時僅釋出js等檔案就可以了。

【相關連結】

  1. Debugging Node.js running on Linux:http://nodejstools.codeplex.com/wikipage?title=NodeJSOnLinuxOnAzure
  2. Azure Deployment:http://nodejstools.codeplex.com/wikipage?title=AzureDeployment
  3. 建構 Node.js 網站并部署到 Windows Azure:http://www.windowsazure.cn/zh-cn/develop/nodejs/tutorials/create-a-website-(mac)/
  4. 建構 Node.js 應用程式并将其部署到 Windows Azure 雲服務:http://www.windowsazure.cn/zh-cn/develop/nodejs/tutorials/getting-started/

如果您覺得本文對您有所幫助,不妨點選下方的“推薦”按鈕來支援我!

本文及文章中代碼均基于“署名-非商業性使用-相同方式共享 3.0”,文章歡迎轉載,但請您務必注明文章的作者和出處連結,如有疑問請私信我聯系!