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 相关文章推荐
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
Nov 30 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 Javascript
关于Javascript回调函数的一个妙用
Aug 29 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
微信小程序 页面跳转事件绑定的实例详解
Sep 20 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
在vue项目中使用Nprogress.js进度条的方法
Jan 31 Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
微信小程序实现长按删除图片的示例
May 18 Javascript
vue-form表单验证是否为空值的实例详解
Oct 29 Javascript
详解为什么Vue中不要用index作为key(diff算法)
Apr 04 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
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
OpenCV 边缘检测
2019/07/10 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
群教班子对照检查材料
2014/08/26 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
大四学生个人总结
2015/02/15 职场文书
小升初自荐信范文
2015/03/05 职场文书
宪法宣传标语100条
2019/10/15 职场文书