本文翻译自:How to print a stack trace in Node.js?

有谁知道如何在Node.js中打印堆栈跟踪?


#1楼

参考:https://stackoom.com/question/CGd0/如何在Node-js中打印堆栈跟踪


#2楼

通过一个随时可用的Node模块,可以从Node获得全长堆栈跟踪(尽管性能损失很小): http : //www.mattinsler.com/post/26396305882/announcing-longjohn-long-stack -traces换节点-JS


#3楼

Any Error object has a stack member that traps the point at which it was constructed. 任何Error对象都有一个stack成员,用于捕获构造它的点。

var stack = new Error().stack
console.log( stack )

or more simply: 或更简单地说:

console.trace("Here I am!")

#4楼

To print stacktrace of Error in console in more readable way: 以更易读的方式在控制台中打印Error堆栈跟踪:

console.log(ex, ex.stack.split("\n"));

Example result: 示例结果:

[Error] [ 'Error','    at repl:1:7','    at REPLServer.self.eval (repl.js:110:21)','    at Interface.<anonymous> (repl.js:239:12)','    at Interface.EventEmitter.emit (events.js:95:17)','    at Interface._onLine (readline.js:202:10)','    at Interface._line (readline.js:531:8)','    at Interface._ttyWrite (readline.js:760:14)','    at ReadStream.onkeypress (readline.js:99:10)','    at ReadStream.EventEmitter.emit (events.js:98:17)','    at emitKey (readline.js:1095:12)' ]

#5楼

As already answered, you can simply use the trace command: 如前所述,您只需使用trace命令:

console.trace("I am here");

However, if you came to this question searching about how to log the stack trace of an exception , you can simply log the Exception object. 但是, 如果您在搜索有关如何记录异常的堆栈跟踪的问题时 ,可以只记录Exception对象。

try {  // if something unexpectedthrow new Error("Something unexpected has occurred.");     } catch (e) {console.error(e);
}

It will log: 它会记录:

Error: Something unexpected has occurred. 错误:发生了意外情况。
at main (c:\\Users\\Me\\Documents\\MyApp\\app.js:9:15) 在main(c:\\ Users \\ Me \\ Documents \\ MyApp \\ app.js:9:15)
at Object. 在对象。 (c:\\Users\\Me\\Documents\\MyApp\\app.js:17:1) (C:\\用户\\我\\文件\\ MyApp的\\ app.js:17:1)
at Module._compile (module.js:460:26) 在Module._compile(module.js:460:26)
at Object.Module._extensions..js (module.js:478:10) 在Object.Module._extensions..js(module.js:478:10)
at Module.load (module.js:355:32) 在Module.load(module.js:355:32)
at Function.Module._load (module.js:310:12) 在Function.Module._load(module.js:310:12)
at Function.Module.runMain (module.js:501:10) 在Function.Module.runMain(module.js:501:10)
at startup (node.js:129:16) 在启动时(node.js:129:16)
at node.js:814:3 在node.js:814:3

If your Node.js version is < than 6.0.0 , logging the Exception object will not be enough. 如果Node.js版本小于6.0.0 ,则记录Exception对象是不够的。 In this case, it will print only: 在这种情况下,它只会打印:

[Error: Something unexpected has occurred.] [错误:发生意外事件。]

For Node version < 6, use console.error(e.stack) instead of console.error(e) to print the error message plus the full stack, like the current Node version does. 对于Node版本<6,使用console.error(e.stack)而不是console.error(e)来打印错误消息加上完整堆栈,就像当前的Node版本一样。

Note: if the exception is created as a string like throw "myException" , it's not possible to retrieve the stack trace and logging e.stack yields undefined . 注意:如果将异常创建为类似throw "myException"的字符串,则无法检索堆栈跟踪并记录e.stack产生undefined

To be safe, you can use 为了安全起见,您可以使用

console.error(e.stack || e);

and it will work for old and new Node.js versions. 它适用于新旧Node.js版本。


#6楼

您可以使用node-stack-trace模块,它是一个电源完整模块来跟踪调用堆栈。

如何在Node.js中打印堆栈跟踪?相关推荐

  1. 如何在node.js中发出HTTP POST请求?

    如何在node.js中使用数据发出出站HTTP POST请求? #1楼 如果您使用请求库,这会变得更容易. var request = require('request');request.post( ...

  2. 如何在Node.js中获取本机本地IP地址

    最近在做Cloud related的项目时,遇到一个问题,就是如何在Node.js中获取本机的IP地址.Node.js提供的API中,只能获取本机的hostname. os = require('os ...

  3. 如何在Node.js中退出

    用于退出的命令是什么? (即终止Node.js进程) #1楼 从命令行, .exit就是你想要的: $ node > .exit $ 它在REPL文档中有记录 . REPL(Read-Eval- ...

  4. 如何在Node.js中处理POST数据?

    如何提取Node.js中 HTTP POST方法发送的表单数据( form[method="post"] )和文件上传? 我已经阅读了文档,谷歌搜索并没有发现任何东西. funct ...

  5. 如何在Node JS中卸载NPM模块?

    本文翻译自:How to uninstall npm modules in node js? As commonly known, any npm module can be installed by ...

  6. php能反序列化js的吗,javascript – 如何在node.js中反序列化PHP会话?

    我将 PHP $_SESSION数据存储在数据库中. 然后从Node.js服务器,我想获取该数据并反序列化它. con.query('SELECT user_id, data ' + 'FROM se ...

  7. mysql econnreset_如何在Node.js中调试错误ECONNRESET?

    我正在使用Socket.io运行Express.js应用程序用于聊天Web应用程序,并且在24小时内大约5次随机收到以下错误.节点进程将被永久封装,并立即重新启动. 问题是重新启动Express将我的 ...

  8. ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)

    当你在浏览器中查看网页时,其实是在向互联网上的另一台计算机发出请求,然后它会将网页提供给你作为响应.你通过互联网与之交谈的那台计算机就是Web服务器,Web服务器从客户端(例如你的浏览器)接收HTTP ...

  9. node.js api接口_如何在Node.js API客户端中正常处理故障

    node.js api接口 by Roger Jin 罗杰·金(Roger Jin) 如何在Node.js API客户端中正常处理故障 (How to gracefully handle failur ...

最新文章

  1. 【Usaco2014Open银组】照相(pairphoto)
  2. SPI动态加载配置文件
  3. 高翔orbslam_高翔博士分享ORBSLAM2_with_pointcloud_map的安装步骤
  4. c语言switch中用ifelse,初学者求问:用if单分支选择语句替换switch语句?if.else呢...
  5. 后端:MyBatis缓存知识介绍
  6. python 图像识别pytesseract快速设置
  7. 冗余的阿里云实例开启和停止API
  8. HEVC/H265 HM10.0 分析(二)TComDataCU.cpp
  9. 【计算机组成原理】CISC和RISC
  10. 获取网页上数据(图片、文字、视频)-b
  11. 倒计时2天!1024 程序员节全日程曝光,105 场深度演讲点燃数字经济新时代
  12. LAMP架构一(介绍)
  13. S7-1200使用集成库FB285控制G120变频器的基本步骤
  14. |app自动化测试之Appium WebView 技术原理
  15. QCC3040----PS key
  16. Javascript代码优化的8个知识点,分享web前端资料
  17. Linux nobody
  18. 【渝粤教育】广东开放大学 现代企业管理 形成性考核 (51)
  19. 滤波算法(一)—— 平均值滤波算法
  20. python的库怎么学习_怎样学习一个Python 库 ?

热门文章

  1. 《面向机器智能的TensorFlow实践》导读
  2. [redis]redis概述
  3. cocos2dx 3.x(移动修改精灵坐标MoveTo与MoveBy)
  4. 使用/调用 函数的时候, 前面加不加 对象或 this?
  5. 相册选取图片和照相机取图片
  6. 机器学习之支持向量机算法(二)
  7. Java 连接 SQL Server 数据库
  8. 201521460005 实验五
  9. zabbix源码编译安装以及添加第一台host监控
  10. uva10817 dijkstra