nodejs調試慢(nodejs怎麼調試)

本文目錄一覽:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:36
下一篇 2024-12-02 20:36

相關推薦

  • NodeJS 建立TCP連接出現粘包問題

    在TCP/IP協議中,由於TCP是面向位元組流的協議,發送方把需要傳輸的數據流按照MSS(Maximum Segment Size,最大報文段長度)來分割成若干個TCP分節,在接收端…

    編程 2025-04-29
  • 從零開始:NodeJS的完整卸載與重新安裝

    如果你是一名NodeJS開發工程師,你一定不止一次遇到過面對各種奇怪的bug和問題,不得不重新安裝NodeJS的情況。那麼如何完整卸載和重新安裝NodeJS呢?這篇文章將會為你一步…

    編程 2025-04-22
  • Nodejs nvm:全面解析和使用

    一、什麼是nvm Node.js 版本管理器(Node Version Manager),簡稱 nvm,是一個可以同時管理多個 Node 版本的工具。 nvm 讓你可以輕鬆地在同一…

    編程 2025-04-13
  • Linux Nodejs安裝及環境配置

    一、安裝Linux操作系統 在進行Nodejs的安裝前需要先安裝Linux操作系統。選擇適合自己的Linux操作系統,通過刻錄盤或U盤進行安裝。 二、安裝Node.js 可以通過官…

    編程 2025-02-05
  • nodejs編程pdf,nodejs程序

    本文目錄一覽: 1、《深入淺出nodejs》pdf下載在線閱讀全文,求百度網盤雲資源 2、《nodejs開發實戰詳解電子式》pdf下載在線閱讀全文,求百度網盤雲資源 3、如何用no…

    編程 2025-01-14
  • nodejs中crypto,node nodejs

    本文目錄一覽: 1、求教nodejs怎麼對密碼進行加鹽的hash加密 2、nodejs裡面怎麼實現HMAC-SHA1 3、nodejs怎樣獲取一個上傳文件的MD5碼 4、關於nod…

    編程 2025-01-14
  • cdnjson跨域,nodejs 跨域

    本文目錄一覽: 1、怎麼解決跨域問題 2、如何可以跨域訪問靜態json文件呢? 3、JSON怎麼跨域 怎麼解決跨域問題 1、 通過jsonp跨域 JSONP(JSON with P…

    編程 2025-01-11
  • php轉nodejs,php轉nodejs代碼

    本文目錄一覽: 1、node.js與php相比有哪些優缺點? 2、php和nodejs中的變數與數組的傳值 3、php與nodejs通信問題 4、PHP和Nodejs能配合使用嗎 …

    編程 2025-01-11
  • nodejs搭建webrtc(nodejs搭建web伺服器缺點)

    本文目錄一覽: 1、基於webrtc以及nodejs的P2P實時視頻demo 2、如何用nodejs搭建web伺服器 3、如何用命令行開啟nodejs搭建web伺服器? 4、如何用…

    編程 2025-01-09
  • 包含centos7配置nodejs的詞條

    本文目錄一覽: 1、虛擬機上centos7 nodejs怎麼安裝 2、centos7下用yum install 安裝nodejs,默認裝在哪個目錄了 3、centos7怎麼安裝no…

    編程 2025-01-05

發表回復

登錄後才能評論