本文实例讲述了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').Console
或console.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:
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程序设计有所帮助。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]