If you use a virtual machine to develop your Node.js app and probably you use Vagrant to configure and port your work environment, sooner or later you are going to need to debug.While node has a built in debugger, node-inspector provides a pleasant graphical interface for debugging node programs. Node Inspector is a debugger interface for node.js using the WebKit Web Inspector, the familiar javascript debugger from Safari and Chrome.

Installation

With npm:

 npm install -g node-inspector 

Forwarding ports

– The straight forward option is to open VirtualBox and go to the machine configuration settings.Virtual box machine settings Virtual box machine settings

And then to Network -> advanced-> port forwarding:Virtual box port forwarding Virtual box port forwarding

There you use VirtualBox’s Port Forwarding Rules window to forward ports. You don’t have to specify any IP addresses. Changes take effect immediately. – If you are using Vagrant, it’s easier. Write down this line in your vagrantfile (I use 3001 as an example)

config.vm.network :forwarded_port, guest: 3001, host: 3001 # node-inspector

Chages will take effect next time you start your virtual machine.

Debugging with node-inspector

Now you are all set to start using node-inspector. Go to your virtual machine console and run

 node --debug your_program.js

NOTE: make sure that the –debug flag comes before your/node/program.js or else you may see an EADDRINUSE error. and then, in another console, run

 node-inspector --web-port=3001 

I use 3001 just as an example, you could use whatever you want. Now open http://127.0.0.1:3001/debug?port=5858 in your favorite WebKit based browser. You should now see the javascript source from node. If you don’t, click the scripts tab. Select a script and set some breakpoints (far left line numbers) or simply add a debugger call in your code (node will break automatically on the call, just as V8 does).


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *