node.js调试

不用每次都重启服务的supervisor


使用过PHP的同学肯定都清楚,修改了某个脚本文件后,只要刷新页面服务器就会加载新的内容,但是node.js在第一次引用到某个文件解析后会
将其放入内存,下次访问的时候直接在内存中获取,以提高效率,但是这对我们开发造成一定困扰,修改了某个module后只能重启服务器后才能生效,调试起
来效率还是很低的。

于是乎node.js中有了supervisor插件帮我们坚实文件改动,自动重启服务器,supervisor是node.js的一个包,安装起来很简单,使用npm的安装命令就可以,因为我们需要在控制台运行,所以需要安装在全局环境中

npm install -g supervisor

这样我们就可以使用supervisor启动脚本了

supervisor index

当我们对文件做了改动的时候,可以看到控制台多了三行,服务器已经重启了

原生控制台调试

node.js本身支持调试,在语句前面加debugger指令就可以添加一个断点


var server=require(‘./server‘),
router=require(‘./router‘),
requestHandlers=require(‘./requestHandlers‘);
debugger;
var handle={};
debugger;
handle[‘/‘]=handle[‘/start‘]=requestHandlers.start;
debugger;
handle[‘/upload‘]=requestHandlers.upload;
handle[‘/show‘]=requestHandlers.show;
debugger;
server.start(8080,router.route,handle);

在启动服务的时候添加debug 选项

node debug index.js

这时候输入一些指令就可以单步调试、到断点监视局部变量等,看个命令图,很多命令都有其缩写形式































































node.js调试命令
命令 功能
run
执行脚本,在第一行暂停
restart
重新执行脚本
cont, c
继续执行,直到遇到下一个断点
next, n
单步执行
step, s

单步执行并进入函数

out, o

从函数中步出

setBreakpoint(), sb()

当前行设置断点

setBreakpoint(‘f()’), sb(...)
在函数f的第一行设置断点
setBreakpoint(‘script.js’, 20), sb(...)
在 script.js 的第20行设置断点
clearBreakpoint, cb(...)
清除所有断点
backtrace, bt
显示当前的调用栈
list(5)
显示当前执行到的前后5行代码
watch(expr)
把表达式 expr 加入监视列表
unwatch(expr)
 把表达式 expr 从监视列表移除 
watchers
显示监视列表中所有的表达式和值
repl
在当前上下文打开即时求值环境
kill
终止当前执行的脚本
scripts
显示当前已加载的所有脚本
version
显示v8版本

详细使用有兴趣同学可以自己摸索,我是没兴趣。。。太复杂了,看几个贴心的

使用Eclipse调试

是的,Eclipse又威武了,连node.js也能调试,在Eclipe官网上下载eclipse,然后 Help->Install New
Software->Add

在弹出的窗口添加一个源,名字好记就行,地址是http://chromedevtools.googlecode.com/svn/update/dev/

等一会儿后弹出选择界面,选中第一个

一路next到最后finish,下载完成后会提醒重启Eclipse,完成之后就可以调试node.js了,打开想调试的文件,切换Eclipse到调试视图,点击工具栏右边的小三角,选择Debug
Configuration

双击 Standard V8 VM
选项创建一个新的配置,填好相应参数

通过 --debug-brk选项在控制台启动node服务器

node --debug-brk=5858 test.js

点击Eclipse刚才界面的debug按钮,就可以像调试Java一样调试node.js了

使用node-inspector调试

大部分node.js应用都是web应用,所以一些基于Chrome的在线调试工具应运而生,最出名的应该就是node-inspector了,这是一个node.js的模块,安装、使用相当的方便,首先使用npm把其安装在全局环境中

npm install -g node-inspector

node-inspector是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector来监听node.js的debug调试端口。默认情况下node-inspector的端口是8080,可以通过参数--web-port=[port]来设置端口。

在启动node-inpspector之后,我们可以通过--debug或--debug-brk来启动node.js程序。

这时候就可以访问http://127.0.0.1:8888/debug?port=5858 使用浏览器调试了,看看界面,不用多说什么了吧

node.js调试,布布扣,bubuko.com

时间: 2024-08-06 03:41:26

node.js调试的相关文章

Node.js调试技巧

作者:zhanhailiang 日期:2014-11-23 1. console.log 跟前端调试相同,通过一步步打印相关变量进行代码调试 2. 使用Node.js内置的调试器 通过node debug xxx.js来进行调试: [root@~/wade/nodejs/professional-nodejs/chapter18]# node debug app_with_bug.js < debugger listening on port 5858 connecting... ok debu

nodejs学习笔记Node.js 调试命令

3.4  调试        47 下面是一个简单的例子: $ node debug debug.js < debugger listening on port 5858 connecting... ok break in /home/byvoid/debug.js:11 var a = 1; 2 var b = 'world'; 3 var c = function (x) { debug> n break in /home/byvoid/debug.js:21 var a = 1; 2 v

WebStorm配置node.js调试

最近因为工作关系,一直在做node.js的开发,学习了koa框架,orm框架sequelize,以及swagger文档的配置.但是,最近因为swagger文档使用了es6的修饰器那么个东西(在java中被称作注解),所以,node.js无法编译项目,所以就需要使用babel对es6进行转换.因为这篇文章是想写一下,如何配置使用了babel转换器的debug方法,至于怎么配置koa-swagger-decorator,我会在短期内,写篇文章专门来做这个插件的介绍. 其实,node在6版本的时候,已

node.js调试方法

第一种方式:node内置的调试器 在程序中添加debugger,然后在启动node程序时,使用debug模式启动 1.node debug my_event.js 2.使用node文档中各种命令,进行调试,例如,使用repl,可以直接查看程序中变量的值 3.可以输入help查看帮助信息选择需要的命令 第二种方式:vscode 需要满足的条件: Node.js 6.3+ Chrome 55+ 1.安装node debug插件, 2.在js程序中写入debugger.或者直接在vscode编辑其中,

node.js调试入门

1-1 Inspector介绍 使用Inspector调试Node.js的优势 可查看当前上下文的变量 可观察当前函数调用堆栈 不侵入代码 可在暂停状态下执行指定代码 Inspector的构成以及原理 WebSockets服务(监听命令) Inspector协议 Http服务(获取元信息) 协议:端口/uuid 浏览器输入协议:端口 元信息 原文地址:https://www.cnblogs.com/qiqi715/p/11494900.html

node.js 调试 eggs launch.json配置信息

{ // 使用 IntelliSense 了解相关属性. // 悬停以查看现有属性的描述. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "调试", "type": "node", &quo

在 Chrome 开发者工具中调试 node.js

命令行工具 devtool ,它可以在 Chrome 的开发者工具中运行 Node.js 程序. 下面的记录显示了在一个 HTTP 服务器中设置断点的情况. 该工具基于 Electron 将 Node.js 和 Chromium 的功能融合在了一起.它的目的在于为调试.分析和开发 Node.js 应用程序提供一个简单的界面. 你可以使用 npm 来安装它: npm install -g devtool 在某种程度上,我们可以用它来作为 node shell 命令的替代品.例如,我们可以这样打开一

使用PHPStorm调试Node.js代码

Node.js出来也有一段时间了,是时候拿来做点东西啦,虽然还没有到1.0版本,但是应该也快了. 安装 不得不说,作为后期之秀,各种工具做得还不错,安装Node也是,就是几分钟的事情,有个叫做NVM的东西,Windows下对应的是NVMW,用来安装Node,想安几个版本都是不费力啊.开始安装: git clone git://github.com/hakobera/nvmw.git "%HOMEDRIVE%%HOMEPATH%.nvmw" set "PATH=%HOMEDRI

(四)、node.js对于程序的调试

Node.js 支持命令行下的单步调试.下面是一个简单的程序: var a = 1; var b = 'world';  var c = function(x) {   console.log('hello ' + x + a); }; c(b); 在命令行下执行 node debug debug.js,将会启动调试工具: Node.js 调试命令 输入 n 表示下一行 输入 sb('debug.js', 4) 表示在函数的第四行设置断点 使用elipse调试 在使用 Eclipse 之前,首先