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 var b = 'world';

3 var c = function (x) {

4    console.log('hello ' + x + a); debug> sb('debug.js', 4)

1  var a = 1;

2  var b = 'world';

3  var c = function (x) {

*  4   console.log('hello ' + x + a);

5  };

6  c(b);

7  });

debug> c

break in /home/byvoid/debug.js:42 var b = 'world';

3 var c = function (x) {

* 4   console.log('hello ' + x + a);

5  };

6  c(b); debug> repl

Press Ctrl + C to leave debug repl

>  x

'world' > a + 1 2

debug> c

< hello world1 program terminated

3.4.2  远程调试

V8 提供的调试功能是基于 TCP 协议的,因此 Node.js 可以轻松地实现远程调试。在命 令行下使用以下两个语句之一可以打开调试服务器:

node

--debug[=port] script.js

10

node

--debug-brk[=port] script.js

48        第 3 章    Node.js 快速入门

node --debug 命令选项可以启动调试服务器,默认情况下调试端口是 5858,也可以 使用 --debug=1234 指定调试端口为 1234。使用 --debug 选项运行脚本时,脚本会正常 执行,但不会暂停,在执行过程中调试客户端可以连接到调试服务器。如果要求脚本暂停执 行等待客户端连接,则应该使用 --debug-brk 选项。这时调试服务器在启动后会立刻暂停 执行脚本,等待调试客户端连接。

当调试服务器启动以后,可以用命令行调试工具作为调试客户端连接,例如:

//在一个终端中

$ node --debug-brk debug.js

debugger listening on port 5858

//在另一个终端中

$ node debug 127.0.0.1:5858 connecting... okdebug> n

break in /home/byvoid/debug.js:21 var a = 1;2 var b = 'world';

3 var c = function (x) {

4 console.log('hello ' + x + a); debug>

事实上,当使用 node debug debug.js 命令调试时,只不过是用 Node.js 命令行工 具将以上两步工作自动完成而已。

nodejs学习笔记Node.js 调试命令的更多相关文章

  1. NodeJS学习笔记 (19)进阶调试-debugger(ok)

    写在前面 谈到node断点调试,目前主要有三种方式,通过node内置调试工具.通过IDE(如vscode).通过node-inspector,三者本质上差不多.本文着重点在于介绍 如何在本地通过nod ...

  2. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  3. NodeJS学习笔记 (18)基础调试-console(ok)

    模块概览 console模块提供了基础的调试功能.使用很简单,常用的API主要有 console.log().console.error(). 此外,可以基于Console类,方便的扩展出自己的con ...

  4. 学习笔记——node.js

    node.js的作用在于,号称可以让服务器支持更多的连接.比如说,php + apche可以让服务器支持4000个并发连接,那么node.js + apche可以让服务器支持并发几万个. 为什么这么牛 ...

  5. [学习笔记]node.js中的path.extname方法

    path.extname 返回path路径文件扩展名,如果path以 ‘.' 为结尾,将返回 ‘.',如果无扩展名 又 不以'.'结尾,将返回空值. path.extname('index.html' ...

  6. node.js调试

    用了几天node.js感觉很新奇,但是调试问题实在是愁煞人,开始的时候懒的学习调试方法,看看异常内容就可以了,但随着代码复杂程度的上升,并不是所有错误都是语法错误了,不调试搞不定了,只好搜搜资料,学习 ...

  7. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  8. Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识

    前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...

  9. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

随机推荐

  1. MySQL 数据库常用命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  2. ajax等待(比较慢时)(显示图片)

    html页面 <div style="display:none;" id="loading-mask"></div> <div i ...

  3. Linux 查找具体的文件名称

    在大概知道文了件地址的情况下, 比如root@masterback:/# cd /usr/lib/jvm/ root@masterback:/usr/lib/jvm# ls 出来具体的文件名称

  4. 巧妙的利用Mongodb做地理空间查询

  5. TTCN中PTC的执行流程

    一些概念 Component(測试组件或者測试成分),TTCN接触下来最频繁的就是MTC(Main Test Component,主測试组件),在执行測试用例前,须要首先创建一个MTC.在testca ...

  6. RF常用快捷键

    转自:http://www.robotframework.net/article/47 重命名——>F2 搜索关键字——>F5 执行用例——>F8 创建新工程——>ctrl+n ...

  7. ELK5.X+logback搭建日志平台

    一.背景 当生产环境web服务器做了负载集群后,查询每个tomcat下的日志无疑是一件麻烦的事,elk为我们提供了快速查看日志的方法. 二.环境 CentOS7.JDK8.这里使用了ELK5.0.0( ...

  8. 复习前面一个月的学习C#感觉道路好艰难啊

    今天是复习前面学习的内容,感觉这一个月来真的学习了很多,但是掌握的不好,好多都是在老师讲完课后做起来练习感觉这知识用起来蛮轻松地,但是经过昨天和今天的复习发现好多还是给忘记啦,甚是失落啊,刚开始就知道 ...

  9. Linux获取当前目录名,shell获取当前目录名

    想把当前目录名保存到一个变量中,然后用在别的地方 ${PWD##*/} 测试: cd /var/log/squid echo ${PWD##*/} 还有很多种方法,请参考这个老外写的: http:// ...

  10. saltstack安装

    环境: 172.16.202.104 stack-master 172.16.202.108 stack-node01 172.16.202.105 stack-node02 安装 导入yum源认证的 ...