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实例教程(19) 使用HoTMetal(1)
Dec 23 Javascript
jQuery 美元符冲突的解决方法
Mar 28 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 Javascript
JavaScript作用域链示例分享
May 27 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
Dec 15 Javascript
JS加载iFrame出现空白问题的解决办法
May 13 Javascript
AngularJS基础 ng-value 指令简单示例
Aug 03 Javascript
JavaScript中捕获与冒泡详解及实例
Feb 03 Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
Jan 12 Javascript
如何解决vue2.0下IE浏览器白屏问题
Sep 13 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
Jul 21 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
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
python合并文本文件示例
2014/02/07 Python
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
简单了解Python3里的一些新特性
2019/07/13 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
python打包成so文件过程解析
2019/09/28 Python
python获取array中指定元素的示例
2019/11/26 Python
python重要函数eval多种用法解析
2020/01/14 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
大学生的四年学习自我评价
2013/12/13 职场文书
最受欢迎的自我评价
2013/12/22 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers