本文目錄一覽:
Webstorm 怎麼調試 nodejs 會這麼慢
Node Inspector 是一個可在webkit內核瀏覽器下進行nodejs調試的工具,其界面基本上跟chrome的調試工具一樣,使用非常方便。
首先在全局環境中安裝node inspector
如何調試nodejs
Node Inspector 是一個可在webkit內核瀏覽器下進行nodejs調試的工具,其界面基本上跟chrome的調試工具一樣,使用非常方便。
首先在全局環境中安裝node inspector
[javascript] view plaincopy
npm install -g node-inspector
安裝完成之後,以調試模式運行需要調試的node代碼,比如
[javascript] view plaincopy
node –debug-brk app.js
這種方式會在代碼運行的時候,強制在第一行添加斷點
這時,會出現「debugger listening on port 5858」的提示
默認的埠是5858,也可以像這樣修改:
node –debug-brk[=3000] app.js
然後,啟動node-inspector,
[javascript] view plaincopy
node-inspector
(因為之前的nodejs代碼在運行,所以命令行窗口沒辦法輸入新的命令,所以啟動node-inspector需要新打開一個命令行窗口來輸入)
根據提示中的地址,打開
就可以看到,一個模擬Chrome調試窗口的頁面,載入了node中的所有代碼,具體的調試方式,就和Chrome一樣了。
還有一種方式是在代碼中需要添加斷點的地方,加入
[javascript] view plaincopy
debugger;
以下面這種方式運行
[javascript] view plaincopy
node –debug app.js
這樣代碼會運行到需要debugger的地方暫停。
nodejs 模塊開發怎麼調試
1. 基於Nodejs內建的調試器
Nodejs提供了一個內建調試器來幫助開發者調試應用程序。想要開啟調試器我們需要在代碼中加入debugger標籤,當Nodejs執行到debugger標籤時會自動暫停(debugger標籤相當於在代碼中開啟一個斷點)。代碼如下:
var path = url.parse(req.url).pathname;
debugger;
res.writeHead(200, {‘Content-Type’: ‘text/plain’});
執行命令:node debug example.js 就可以進入調試模式。
在debug模式下,可以使用內建命令如repl去評估變數和表達式的值(如2所示)。我們也可以通過help命令來獲取完整的調試命令列表。
Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb),
watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version
2. 基於V8插件的調試器
Nodejs是基於google V8的引擎上構建的,Google為Eclipse提供了一個對應的調試插件。關於如何在Eclipse中安裝和調試Nodejs程序就不再重複描述了。唯一要注意的是在默認情況下V8引擎支持的調試模式是本地模式。如果想要開啟遠程調試的話,我們需要修改Nodejs中的V8源文件:/deps/v8/src/platform-posix.cc
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); — INADDR_ANY
addr.sin_port = htons(port);
然後重新編譯Nodejs。
提示:
用插件來調試nodejs程序,你有時候會遇到什麼connect refuse, get version failed等等錯誤。那麼請注意你使用的ip的地址, 一般下127.0.0.1的迴環地址是都工作的。如果你使用真實的ip地址,請檢查防火牆設置。
3. 基於Chrome瀏覽器的調試器
既然我們可以通過V8的調試插件來調試,那是否也可以借用Chrome瀏覽器的JavaScript調試器來調試呢?node-inspector模塊提供了這樣一種可能。我們需要先通過npm來安裝node-inspector
npm install -g node-inspector // -g 導入安裝路徑到環境變數
node-inspector是通過websocket方式來轉向debug輸入輸出的。因此,我們在調試前要先啟動node-inspector來監聽Nodejs的debug調試埠。
默認情況下node-inspector的埠是8080,可以通過參數–web-port=[port]來設置埠。在啟動node-inpspector之後,我們可以通過–debug或–debug-brk來啟動nodejs程序。通過在瀏覽器輸入http://[ip address]:8080/debug?port=5858,我們會得到如下的調試窗口:
這三種方法各自有優缺點,我個人比較欣賞node-inspector的方式。
怎麼調試NodeJS
調試技術與開發技術構成了軟體開發的基石。目前Nodejs作為新型的Web Server開發棧倍受開發者關注。總的來說Nodejs的應用程序主要有兩部分:JavaScript編寫的js模塊和C語言編譯的二進位模塊。這裡主要介紹三種avaScript模塊的調試方法:基於Nodejs內建的調試器,基於V8調試插件和基於Chrome瀏覽器的調試器。以下所有的操作都將基於如下代碼(example.js):
var http = require(‘http’);
var url = require(‘url’);
http.createServer(function (req, res) {
var path = url.parse(req.url).pathname;
res.writeHead(200, {‘Content-Type’: ‘text/plain’});
res.end(path);
}).listen(1337, “127.0.0.1”);
console.log(‘Server running at ‘);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195692.html