Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

debugging node.js with node-inspector

I'm trying to debug my nodejs app using node-inspector. But Google Chrome doesn't show the code.

I'm using the following,

Node.js : v0.10.26

Express : 4.0.0

Node Inspector : v0.7.3

Google Chrome version : 34.0.1847.131

This is what I'm doing to start the debugger..

$ node-inspector Node Inspector v0.7.3 Visit http://127.0.0.1:8080/debug?port=5858 to start debugging. 

In another console,

$ node --debug app.js  debugger listening on port 5858 $ 

Then started Google Chrome and went to

http://127.0.0.1:8080/debug?port=5858 

It opens up node-inspector but without any code..all windows are empty.

Noticed that I'm not getting 'Express server listening on port 3000'

Tried all as per node-inspector fails to connect to node but no luck

Couldn't work out what I'm missing. Would be great of you have any suggestions..so I can debug my Node.js apps in Google Chrome.

like image 453
genwip Avatar asked Apr 28 '14 12:04

genwip


People also ask

How do I debug a node js file?

Open the starting file (typically index. js ), activate the Run and Debug pane, and click the Run and Debug Node. js (F5) button. The debugging screen is similar to Chrome DevTools with a Variables, Watch, Call stack, Loaded scripts, and Breakpoints list.

Does Nodejs have a debugger?

Node. js includes a command-line debugging utility. The Node. js debugger client is not a full-featured debugger, but simple stepping and inspection are possible.

What is inspector in node JS?

Inspector in node. js is a debugging interface for node. js application that is contained in the app. js file and used blink developer tools. It works almost similar to chrome developer tools.


1 Answers

Try to run node --debug-brk app.js instead of just --debug. Your application may not be pausing before node inspector hooks into the node process. Using --debug-brk will force node to break on the first line of your app and wait for a debugger to attach to the process. Loading the node-inspector web interface is what causes node-inspector to attach to your node process; that's why you include the node debug port in the query string (localhost:8080/debug?port=5858). You're telling node-inspector what port it should reach out and attach to.

Here's an animated gif I put together showing a complete install and run of node-inspector.

In the gif I use the --debug flag because I'm not debugging any code that runs right at startup. I'm debugging inside a request handler, which only fires when the page is requested. Thus, refreshing the page causes node-inspector to break on that line.

I also put together a 15 minute YouTube tutorial a while ago.

http://youtu.be/03qGA-GJXjI

I hope that helps!

like image 97
Chev Avatar answered Sep 21 '22 14:09

Chev