Node.js API详解之 console模块用法详解


Posted in Javascript onMay 12, 2020

本文实例讲述了Node.js API详解之 console模块用法。分享给大家供大家参考,具体如下:

console模块简介

说明:

console 模块提供了一个简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台。
console 模块导出了两个特定的组件:
一个 Console 类,包含 console.log() 、 console.error() 和 console.warn() 等方法,可以被用于写入到任何 Node.js 流。
一个全局的 console 实例,可被用于写入到 process.stdout 和 process.stderr。
全局的 console 使用时无需调用 require('console')。

demo:

const fs = require('fs');
/* 全局console */
console.log('你好世界');
// 输出: 你好世界
console.log('你好%s', '世界');
// 输出: 你好世界
console.error(new Error('错误信息'));
// Error: 错误信息
//  at Object. (/Users/xiaoqiang/Documents/work/demo/NodeApi/app.js:7:15)
//  at Module._compile (module.js:569:30)
//  at Object.Module._extensions..js (module.js:580:10)
//  at Module.load (module.js:503:32)
//  at tryModuleLoad (module.js:466:12)
//  at Function.Module._load (module.js:458:3)
//  at Function.Module.runMain (module.js:605:10)
//  at startup (bootstrap_node.js:158:16)
//  at bootstrap_node.js:575:3
const name = '描述';
console.warn(`警告:${name}`);
//警告:描述
/* 全局console */
const out = fs.createWriteStream('./stdout.log');
const err = fs.createWriteStream('./stderr.log');
const myConsole = new console.Console(out, err);
myConsole.log('你好世界');
// 打印: '你好世界'到 stdout.log
myConsole.log('你好%s', '世界');
// 打印: '你好世界'到 stdout.log
myConsole.error(new Error('错误信息'));
// 打印: [Error: 错误信息]到 stderr.log
const name = '描述';
myConsole.warn(`警告${name}`);
//打印: '警告描述' 到 stderr.log

Console 类

说明:

Console 类可用于创建一个具有可配置的输出流的简单记录器,
可以通过 require('console').Consoleconsole.Console 使用

demo:

const { Console } = require('console');
const { Console } = console;

new Console(stdout[, stderr])

说明:

通过传入一个或两个可写流实例,创建一个新的 Console 对象
stdout:一个可写流,用于打印日志或输出信息。
stderr: 用于输出警告或错误。
如果没有传入 stderr ,则警告或错误输出会被发送到 stdout
全局的 console 是一个特殊的 Console 实例,
它的输出会发送到 process.stdout 和 process.stderr

demo:

const { Console } = require('console');
const fs = require('fs');
const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
const logger = new Console(output, errorOutput);
// 像 console 一样使用
logger.log('name: %s', 'xiaoqiang');
//stdout.log 中打印: name: xiaoqiang

console.assert(value[, message][, …args])

说明:

一个简单的断言测试,验证 value 是否为真。
value:断言条件,如果不为真,则抛出 AssertionError
message:如果提供了 message,则使用 util.format() 格式化并作为错误信息使用。
区别于浏览器的console.assert(),Node中的assert()如果断言非真的话会抛出异常终止程序。

demo:

const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
const logger = new Console(output, errorOutput);
logger.assert(false, 'Whoops %s', 'didn\'t work')
// AssertionError [ERR_ASSERTION]: Whoops didn't work

console.clear()

说明:

当 stdout 是一个 TTY 时,调用 console.clear() 将尝试清除 TTY。
当 stdout 不是一个TTY时,该方法什么都不做。

console.count([label])

说明:

维护一个指定名称的内部计数器, 并且输出该名称调用 console.count() 的次数。
label:计数器名称

demo:

> console.count()
default: 1
undefined
> console.count('default')
default: 2
undefined
> console.count('abc')
abc: 1
undefined
> console.count('xyz')
xyz: 1
undefined
> console.count('abc')
abc: 2
undefined
> console.count()
default: 3
undefined

console.countReset([label = 'default'])

说明:

重置指定 label 的内部计数器。
label:计数器的名称, 默认为 'default'。

demo:

> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
>

console.dir(obj[, options])

说明:

在 obj 上使用 util.inspect() 并打印结果字符串到 stdout,
util.inspect() 方法返回 object 的字符串表示,主要用于调试。
showHidden:如果为 true,则该对象中的不可枚举属性和 symbol 属性也会显示。默认为 false。
depth: 告诉 util.inspect() 函数当格式化对象时要递归多少次。 默认为 2。 设为 null 可无限递归。
colors: 如果为 true,则输出会带有 ANSI 颜色代码。 默认为 false。 颜色是可定制的,

demo:

console.dir(console)
// Console {
// log: [Function: bound consoleCall],
// info: [Function: bound consoleCall],
// warn: [Function: bound consoleCall],
// error: [Function: bound consoleCall],
// dir: [Function: bound consoleCall],
// time: [Function: bound consoleCall],
// timeEnd: [Function: bound consoleCall],
// trace: [Function: bound consoleCall],
// assert: [Function: bound consoleCall],
// Console: [Function: Console],
// debug: [Function: debug],
// dirxml: [Function: dirxml],
// table: [Function: table],
// group: [Function: group],
// groupCollapsed: [Function: groupCollapsed],
// groupEnd: [Function: groupEnd],
// clear: [Function: clear],
// count: [Function: count],
// markTimeline: [Function: markTimeline],
// profile: [Function: profile],
// profileEnd: [Function: profileEnd],
// timeline: [Function: timeline],
// timelineEnd: [Function: timelineEnd],
// timeStamp: [Function: timeStamp] }

console.error([data][, …args])

说明:

打印到 stderr,并带上换行符。 可以传入多个参数。

demo:

console.error('error: %d', 0x100008);
//error: 1048584

console.group([…label])

说明:

将后续行的缩进增加两个空格。

demo:

Node.js API详解之 console模块用法详解

console.groupCollapsed()

说明:

console.group()的一个别名.

console.groupEnd()

说明:

将后续行的缩进减少两个空格。与console.group()搭配使用。

console.info([data][, …args])

说明:

console.info() 函数是 console.log() 的一个别名。

demo:

console.info('name: %s', 'xiaoqiang');s
//name: xiaoqiang

console.log([data][, …args])

说明:

打印到 stdout,并带上换行符。

demo:

console.log('name: %s', 'xiaoqiang');
//name: xiaoqiang
console.log('name:', 'xiaoqiang');
//name: xiaoqiang

console.time(label)

说明:

启动一个定时器,用以计算一个操作的持续时间。
定时器有一个唯一的 label 标识。
当调用 console.timeEnd() 时,可以使用相同的 label 来停止定时器,
并以毫秒为单位将持续时间输出到 stdout。 定时器持续时间精确到亚毫秒。

demo:

console.time('run time');
for (var i = 100000; i >= 0; i--) {}
console.timeEnd('run time');
//run time: 0.718ms

console.timeEnd(label)

说明:

停止之前通过调用 console.time() 启动的定时器,并打印结果到 stdout

console.trace([message][, …args])

说明:

打印字符串 'Trace :' 到 stderr ,并通过 util.format() 格式化消息堆栈打印代码踪迹。
用以跟踪代码的当前位置。

demo:

console.trace('run time Error');
// Trace: run time Error
//  at Object. (/Users/xiaoqiang/Documents/work/demo/NodeApi/app.js:5:9)
//  at Module._compile (module.js:569:30)
//  at Object.Module._extensions..js (module.js:580:10)
//  at Module.load (module.js:503:32)
//  at tryModuleLoad (module.js:466:12)
//  at Function.Module._load (module.js:458:3)
//  at Function.Module.runMain (module.js:605:10)
//  at startup (bootstrap_node.js:158:16)
//  at bootstrap_node.js:575:3

console.warn([data][, …args])

说明:

console.warn() 函数是 console.error() 的一个别名。

希望本文所述对大家node.js程序设计有所帮助。

Javascript 相关文章推荐
一个高效的JavaScript压缩工具下载集合
Mar 06 Javascript
网上应用的一个不错common.js脚本
Aug 08 Javascript
JavaScript 动态生成方法的例子
Jul 22 Javascript
jquery的flexigrid无法显示数据提示获取到数据
Jul 19 Javascript
js报$ is not a function 的问题的解决方法
Jan 20 Javascript
ajax提交表单实现网页无刷新注册示例
May 08 Javascript
jQuery.holdReady()方法用法实例
Dec 27 Javascript
关于动态执行代码(js的Eval)实例详解
Aug 15 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
vue使用xe-utils函数库的具体方法
Mar 06 Javascript
Vue CLI3 如何支持less的方法示例
Aug 29 Javascript
基于JS实现视频上传显示进度条
May 12 #Javascript
vue项目中使用bpmn-自定义platter的示例代码
May 11 #Javascript
Vue实现图片轮播组件思路及实例解析
May 11 #Javascript
浅谈webpack构建工具配置和常用插件总结
May 11 #Javascript
只有 20 行的 JavaScript 模板引擎实例详解
May 11 #Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 #Javascript
JavaScript异步操作的几种常见处理方法实例总结
May 11 #Javascript
You might like
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
初识ThinkPHP控制器
2016/04/07 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
asp批量修改记录的代码
2008/06/25 Javascript
javascript new 需不需要继续使用
2009/07/02 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
django列表筛选功能的实现代码
2020/03/27 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
英语生日邀请函
2014/01/23 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
代理协议书
2014/04/22 职场文书
车辆年审委托书范本
2014/09/18 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
监考失职检讨书
2015/01/26 职场文书
质量保证书格式
2015/02/27 职场文书
承诺书范本大全
2015/05/04 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书