中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js調試技術總結分享

發布時間:2020-08-21 02:56:58 來源:腳本之家 閱讀:156 作者:moonz-wu 欄目:web開發

前言

眾所周知調試技術與開發技術構成了軟件開發的基石。目前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 http://127.0.0.1:1337/');

一. 基于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 就可以進入調試模式。

Node.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

二. 基于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地址,請檢查防火墻設置。

三. 基于Chrome瀏覽器的調試器

既然我們可以通過V8的調試插件來調試,那是否也可以借用Chrome瀏覽器的JavaScript調試器來調試呢?node-inspector模塊提供了這樣一種可能。我們需要先通過npm來安裝node-inspector

npm install -g node-inspector // -g 導入安裝路徑到環境變量

node-inspector是通過websocket方式來轉向debug輸入輸出的。因此,我們在調試前要先啟動node-inspector來監聽Nodejs的debug調試端口。

Node.js調試技術總結分享

默認情況下node-inspector的端口是8080,可以通過參數--web-port=[port]來設置端口。在啟動node-inpspector之后,我們可以通過--debug或--debug-brk來啟動nodejs程序。通過在瀏覽器輸入http://[ip address]:8080/debug?port=5858,我們會得到如下的調試窗口:

Node.js調試技術總結分享

這三種方法各自有優缺點,我個人比較欣賞node-inspector的方式。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

峨边| 宜宾市| 昌邑市| 北碚区| 巴马| 五原县| 申扎县| 沂南县| 九龙城区| 武城县| 泊头市| 湘乡市| 北海市| 兴海县| 乌鲁木齐市| 绥化市| 大丰市| 无为县| 麻城市| 邹平县| 公主岭市| 卢氏县| 浦城县| 盐城市| 沈阳市| 宁晋县| 高雄市| 广汉市| 吉林省| 保定市| 汝阳县| 宁夏| 桃江县| 宜兴市| 锦屏县| 龙泉市| 体育| 镇赉县| 华蓥市| 互助| 浮梁县|