你常用断点调试吗? 因为什么才需要断点调试的?
发布于 10 年前 作者 think2011 6336 次浏览 最后一次编辑是 8 年前

一直在做前端的事情,调试通常通过 console.log 在chrome调试,因为没有遇到大问题,通常都挺顺利的。 如今使用node.js,发现 console.log 就不方便了。

  1. 你是如何调试node.js的?
  2. 你常用断点调试吗? (前端 or 后端)
  3. 断点调试的带来的便利是什么?
4 回复

node-inspector 方便

<ol><li>开始跟一楼一样用<strong> node-inspector </strong>调试(仅限于Webkit内核的浏览器),后来直接用<strong> Webstorm</strong>,方便了很多;</li><li>平时后端和前端倒是都常用断点调试;</li><li>补充 2:简单的条件判断、变量或对象直接输出查看就好,反之复杂点的逻辑、对象等断点看起来更好一点。<br/>另:学习一些Module的时候,找不到源码中的具体函数。断点后控制台查看一下函数体或对象,不然在代码里直接console.log只能看到[Function] 、[Object] 。</li></ol><h3>举个栗子:</h3><p><strong> connect </strong>或<strong> express </strong>中<strong> req </strong>取表单值的时候,可以用<code>req.params[‘name’]</code>、<code>req.param(‘name’,‘默认值’)</code>、<code>req.body.name</code>等等,</p><p>后来看了<code>req.param</code>函数代码之后就一直用这个来取值了。</p><p>输出查看:</p><code>[2014-06-14 17:41:31.763] [INFO] console - <strong>[Function]</strong></code><p>断点查看:</p><pre class=“prettyprint language-js”>function (name, defaultValue){ var params = this.params || {}; var body = this.body || {}; var query = this.query || {}; if ( null != params[name] && params.hasOwnProperty(name) ) return params[name]; if ( null != body[name] ) return body[name]; if ( null != query[name] ) return query[name]; return defaultValue; }</pre>

web服务的话还是优化自己的日志把,断点调试可以参见这篇文章:https://github.com/johnnychen/johnnychen.github.io/issues/1

Node的一大痛点!有的时候断点调试还不如console.log来得快

回到顶部