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 相关文章推荐
?牟┛途W扣了一??效果出?? target=
May 27 Javascript
eval与window.eval的差别分析
Mar 17 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
Feb 19 Javascript
封装了jQuery的Ajax请求全局配置
Feb 05 Javascript
js编写贪吃蛇的小游戏
Aug 24 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
10个最优秀的Node.js MVC框架
Aug 24 Javascript
区别JavaScript函数声明与变量声明
Sep 12 Javascript
tracking.js页面人脸识别插件使用方法
Apr 16 Javascript
使用FormData实现上传多个文件
Dec 04 Javascript
vueScroll实现移动端下拉刷新、上拉加载
Mar 22 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
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
限制文本字节数js代码
2007/03/06 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python设置环境变量的原因和方法
2019/06/24 Python
python实现最大优先队列
2019/08/29 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
单身旅行者的单身假期:Just You
2018/04/08 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
实习教师个人的自我评价
2013/11/08 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
岗位职责说明书模板
2014/07/30 职场文书
环保公益策划方案
2014/08/15 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery