2013-05-03 90 views
6

在node.js堆栈跟踪中总是有两个数字,行号然后是a:和另一个数字。在下面的例子中,第一行有faye-redis.js:153:36,153是该文件中错误发生位置的行号,但是数字36是什么意思?node.js堆栈跟踪行冒号后的第二个数字是什么意思?

node_modules/faye-redis/faye-redis.js:153:36 • publish.notify 
node_modules/faye-redis/faye-redis.js:72:16 • clientExists 
node_modules/redis/index.js:532:9 • try_callback 
node_modules/redis/index.js:614:13 • return_reply 
node_modules/redis/index.js:266:14 • RedisClient.init_parser 
events.js:96:17 • EventEmitter.emit 
node_modules/redis/lib/parser/hiredis.js:43:18 • execute 
node_modules/redis/index.js:488:27 • on_data 
node_modules/redis/index.js:82:14 • none 
events.js:96:17 • EventEmitter.emit 
net.js:397:14 • onread 

回答

8

第一个数字是行(行号),第二个是列(字符在行)。在JavaScript中,许多编码人员习惯性地使用闭包等方法将大量代码嵌套在单行上,或者使用像YUI压缩器这样的缩小器,所以它通常是相关的信息。

+3

不仅在JavaScript中,而且在许多其他语言。行:列约定是堆栈跟踪中常见的情况。 – BoltClock 2013-05-03 19:37:55

+0

一个问题:如果您使用制表符缩进,编辑器报告的列编号可能与报告的字符编号不匹配。例如,Sublime Text将我的选项卡分别报告为两列。 – RobW 2014-09-19 20:03:55

相关问题