如何在Node.js中打印堆栈跟踪?
本文翻译自: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中打印堆栈跟踪?相关推荐
- 如何在node.js中发出HTTP POST请求?
如何在node.js中使用数据发出出站HTTP POST请求? #1楼 如果您使用请求库,这会变得更容易. var request = require('request');request.post( ...
- 如何在Node.js中获取本机本地IP地址
最近在做Cloud related的项目时,遇到一个问题,就是如何在Node.js中获取本机的IP地址.Node.js提供的API中,只能获取本机的hostname. os = require('os ...
- 如何在Node.js中退出
用于退出的命令是什么? (即终止Node.js进程) #1楼 从命令行, .exit就是你想要的: $ node > .exit $ 它在REPL文档中有记录 . REPL(Read-Eval- ...
- 如何在Node.js中处理POST数据?
如何提取Node.js中 HTTP POST方法发送的表单数据( form[method="post"] )和文件上传? 我已经阅读了文档,谷歌搜索并没有发现任何东西. funct ...
- 如何在Node JS中卸载NPM模块?
本文翻译自:How to uninstall npm modules in node js? As commonly known, any npm module can be installed by ...
- php能反序列化js的吗,javascript – 如何在node.js中反序列化PHP会话?
我将 PHP $_SESSION数据存储在数据库中. 然后从Node.js服务器,我想获取该数据并反序列化它. con.query('SELECT user_id, data ' + 'FROM se ...
- mysql econnreset_如何在Node.js中调试错误ECONNRESET?
我正在使用Socket.io运行Express.js应用程序用于聊天Web应用程序,并且在24小时内大约5次随机收到以下错误.节点进程将被永久封装,并立即重新启动. 问题是重新启动Express将我的 ...
- ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)
当你在浏览器中查看网页时,其实是在向互联网上的另一台计算机发出请求,然后它会将网页提供给你作为响应.你通过互联网与之交谈的那台计算机就是Web服务器,Web服务器从客户端(例如你的浏览器)接收HTTP ...
- node.js api接口_如何在Node.js API客户端中正常处理故障
node.js api接口 by Roger Jin 罗杰·金(Roger Jin) 如何在Node.js API客户端中正常处理故障 (How to gracefully handle failur ...
最新文章
- 【Usaco2014Open银组】照相(pairphoto)
- SPI动态加载配置文件
- 高翔orbslam_高翔博士分享ORBSLAM2_with_pointcloud_map的安装步骤
- c语言switch中用ifelse,初学者求问:用if单分支选择语句替换switch语句?if.else呢...
- 后端:MyBatis缓存知识介绍
- python 图像识别pytesseract快速设置
- 冗余的阿里云实例开启和停止API
- HEVC/H265 HM10.0 分析(二)TComDataCU.cpp
- 【计算机组成原理】CISC和RISC
- 获取网页上数据(图片、文字、视频)-b
- 倒计时2天!1024 程序员节全日程曝光,105 场深度演讲点燃数字经济新时代
- LAMP架构一(介绍)
- S7-1200使用集成库FB285控制G120变频器的基本步骤
- |app自动化测试之Appium WebView 技术原理
- QCC3040----PS key
- Javascript代码优化的8个知识点,分享web前端资料
- Linux nobody
- 【渝粤教育】广东开放大学 现代企业管理 形成性考核 (51)
- 滤波算法(一)—— 平均值滤波算法
- python的库怎么学习_怎样学习一个Python 库 ?