console.log格式化的错误对象不同于error.prototype.toString
console.log formats error object different from Error.prototype.toString
我在这里看到Error.prototype.toString实现。
它主要将error.name
和error.message
打印为name + ': ' + msg
。
但当我将Error
对象传递给console.log
时,我看到file not exists
错误将更多属性打印为errno, code, syscall
等。
console.log
调用什么来打印Error对象的字符串摘要?
代码:
var fs = require('fs')
fs.readFile('/abcd', 'utf8', function(err, res){
console.log("the error toString method shows, " + err)
console.log("the console log's string summary is,")
console.log(err)
})
输出:
the error toString method shows, Error: ENOENT: no such file or directory, open '/abcd'
the console log's string summary is,
{ [Error: ENOENT: no such file or directory, open '/abcd'] errno: -2, code: 'ENOENT', syscall: 'open', path: '/abcd' }
console.log未指定,因此每个浏览器都实现了不同的功能。(Node.js也是如此。)如果你想知道确切的内容,你可以看看浏览器的源代码,当然除了IE/Edge。
在Node.js中,我假设您使用它是因为require
,代码是:
- console.log调用util.format
- util.format调用内部
inspect
函数 - 它调用内部CCD_ 11函数
- 在这种情况下调用内部CCD_ 12函数
- 调用大括号包围的CCD_ 13
- 而且还调用沿着可见密钥传递的
formatter
,从而提供额外的比特
相关文章:
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- JavaScript计算不同于Firefox的图像尺寸(?)
- 为什么{}+[]不同于({}+[])
- 新日期(2012,01)不同于新日期(2012-01)
- 是否可以与位于不同于html5网站呈现的服务器的网络套接字进行通信
- 下拉列表不同于手动选择和自动选择
- Array.fill 不同于赋值上的文字 2D 定义
- javascript post-submit不同于input-submit点击
- AngularStrap排版选项-不同于型号的标签
- 带有nodejs的mocha为assert(false)而不是error断言挂起/超时
- 哈希&盐-登录不同于注册
- 使用不同于“;script.src”;
- localStorage不同于网页和chrome扩展
- console.log格式化的错误对象不同于error.prototype.toString
- HTML/Javascript输入类型=“;文本“-如何显示不同于值的文本
- 处理程序以不同于移动和计算机浏览器的方式提供页面
- grunt contrib车把输出不同于车把npm任务
- 网络音频API:当使用媒体流时,firefox中的FFT数据不同于chrome中的数据
- RegExp不同于使用简单的regex文字
- 仅当KnockoutJS中的值不同于0或为null时才启用