最近打算在项目过程中使用node.js辅助解决一些问题,需要用到node.js的调试技术。

通常而言,大家都会提到debugger或者node-inspector方法。

debugger方法谁用谁知道,一般应该没有人去使用,

node-inspector呢,如果你运气好,可能在两步之内就可以使用chrome来调试了,但是如果运气不好可能就看到

"Remote debugging has been terminated with reason: websocket_closed"错误

如果出现这个错误,很可能是你的node.js版本比较高的原因,你可以尝试将版本除到6.3以下,或者,修改下面中的文件(Linux下自已去找相应的文件路径)

将下图中红框中的代码注释掉

如果不介意使用最新版本的node.js(当前最新是7.5),那么就可以使用另一种选择

文档

即在启动node.js程序时使用如下命令

node --inspect=<ipaddress>:<port> --debug-brk index.js

然后在chrome浏览器中使用

chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=<ipaddress>:<port>/edf01bcd-4217-452a-b6ed-a24272862700

即可调试了。如果你觉得在chrome中每次输入这个麻烦,那么也可以安装一个chrom插件,然后使用相应的IP直接进入。

效果(请忽略被调试的代码)

-------------------------2017年2月12日更新 -------------------------

每次都要输入调试目标机器IP感觉很不爽,在Inspector的选项中可以进行配置,每次默认打开调试目标机器的地址。

进入后调上IP地址,打上两个勾。然后在调试目标机器 node --inspect=192.168.1.139:9229 --debug-brk app.js ,Chrome就会自动开启调试页面了,简直和VS一样方便!

-------------------------2017年2月12日更新结束 -------------------------

node.js 调试问题的更多相关文章

  1. node.js调试

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

  2. WebStorm配置node.js调试

    最近因为工作关系,一直在做node.js的开发,学习了koa框架,orm框架sequelize,以及swagger文档的配置.但是,最近因为swagger文档使用了es6的修饰器那么个东西(在java ...

  3. Node.js 调试器

    稳定性: 3 - 稳定 V8 提供了强大的调试工具,可以通过 TCP protocol 从外部访问.Node 内置这个调试工具客户端.要使用这个调试器,以debug参数启动 Node,出现提示: % ...

  4. sublime text配置node.js调试

    1. 首先到 nodejs.org 下载 Node.js 安装包并安装.2. 打开 Sublime Text 2 编辑器.选择菜单 Tools --> Build System --> n ...

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

    3.4  调试        47  下面是一个简单的例子: $ node debug debug.js < debugger listening on port 5858 connecting ...

  6. node.js调试方法

    第一种方式:node内置的调试器 在程序中添加debugger,然后在启动node程序时,使用debug模式启动 1.node debug my_event.js 2.使用node文档中各种命令,进行 ...

  7. node.js调试入门

    1-1 Inspector介绍 使用Inspector调试Node.js的优势 可查看当前上下文的变量 可观察当前函数调用堆栈 不侵入代码 可在暂停状态下执行指定代码 Inspector的构成以及原理 ...

  8. Node.js 调试小技巧

    小技巧--使用 supervisor如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一 ...

  9. Node.js调试技巧

    1. console.log 跟前端调试相同,通过一步步打印相关变量进行代码调试 2. 使用Node.js内置的调试器 通过node debug xxx.js来进行调试: [root@~/wade/n ...

随机推荐

  1. istream不是std的成员

    如果报错信息为:istream不是std的成员,那么有两种可能 1.没有包含iostream库文件 2.#ifndef 和#endif使用错误,致使包含的iostream的头文件没有被主函数包含

  2. Python神坑:sum和numpy.sum

    同样的一段代码,在两个python文件里面执行的结果不一样,一个是按照列单位进行sum一个是所有元素进行sum: def distCal(vecA, vecB): return sqrt(sum(po ...

  3. https://api.highcharts.com/gantt/

    <a href="https://api.highcharts.com/gantt/">https://api.highcharts.com/gantt/</a& ...

  4. MYSQL存储过程实现用户登录

    MYSQL存储过程实现用户登录 CREATE DEFINER=`root`@`%` PROCEDURE `uc_session_login`( ), ) ) LANGUAGE SQL NOT DETE ...

  5. lumbda表达式初探

    一.表达式格式定义 (parameters) -> expression 或 (parameters) ->{ statements; } 注意点:左边是输入参数,就相当于我们定义方法中的 ...

  6. 时间的转化 js

    php 和java是不一样的 PHP 需要先乘1000 java  不需要 因为PHP传过来的是十位数 java传过来是十三位数 function formatDate() { var now = n ...

  7. idea本地跑代码和链接开发机设置

  8. MySQL 存储修改

    真的坑.

  9. SpringData中使用@Modifying注解实现修改操作

    通过@Modifying可以实现修改和删除操作 @Modifying @Query("update Person set email = :email where lastName =:la ...

  10. ABAP-表中数据的横向累加

    GLT0 等表中数据的横向累加 ——塞依SAP培训   在 ABAP 的 GLT0.FAGLFLEXT 等余额表中,用诸如 TSL01.TSL02 …… TSL16 等字段记录了 16 个期间的发生额 ...