console模块提供了一个简单的调试功能,类似与web浏览器的javscript console。

下面简单介绍下该模块的使用以及用途,我使用了ES6的模版字符串(使用反引号标识),有兴趣的可以去了解。

1、打印信息到stdout

使用console.log(),console.info()以及console.warn()等方法打印信息,info,warn都是log方法的别名,如果是浏览器环境,它们的显示颜色有差异。使用上有点类似C语言的printf()函数,使用如下所示:

const info = "world";
console.log("log:"+"hello nodejs!");
console.info("info:"+"hello %s!",info);
console.warn("warn:"+`hello ${info}!`);

运行结果如下:

E:\developmentdocument\nodejsdemo>node console-example.js

log:hello nodejs!

info:hello world!

warn:hello world!

使用console.error()函数可以输出错误信息stderr,如下所示:

console.error(new Error('typeError'))

2、计时器

使用console.time()console.timeEnd()函数组合来统计代码的执行时间,平常我们可以利用该功能来测试代码的性能,使用如下所示:

var sum = 0,
counts = 100000;
console.time(`${counts} acc takes`);
for(var i=0;i<counts;i++){
sum+=i;
}
console.timeEnd(`${counts} acc takes`);

运行结果如下:

E:\developmentdocument\nodejsdemo>node console-example.js

100000 acc takes: 2ms

3、assert断言

使用console.assert(value[, message][, ...args])函数,如果value是真则不做任何事,否则抛出AssertionError错误且终止代码的运行,如下所示:

console.assert(!1, 'hello %s','world.');

运行结果:

assert.js:89

throw new assert.AssertionError({

^

AssertionError: hello world.

at Console.assert (console.js:87:23)

at Object. (E:\developmentdocument\nodejsdemo\console-example.js:

2:9)

at Module._compile (module.js:409:26)

at Object.Module._extensions..js (module.js:416:10)

at Module.load (module.js:343:32)

at Function.Module._load (module.js:300:12)

at Function.Module.runMain (module.js:441:10)

at startup (node.js:139:18)

at node.js:968:3

4、栈追踪trace

使用console.trace()函数,可以打印出栈调用到当前位置的信息,如下所示:

 function add(a,b){
return a+b;
}
console.trace(add(1,2));

结果如下:

E:\developmentdocument\nodejsdemo>node console-example.js

Trace: 3

at Object. (E:\developmentdocument\nodejsdemo\console-example.js:

32:9)

at Module._compile (module.js:409:26)

at Object.Module._extensions..js (module.js:416:10)

at Module.load (module.js:343:32)

at Function.Module._load (module.js:300:12)

at Function.Module.runMain (module.js:441:10)

at startup (node.js:139:18)

at node.js:968:3

5、将调试信息输出到文件中

利用Console类的实例,同时指定log或info的输出流,以及warn或error的输出流,当使用log,info方法时,信息会写入normal.log,使用error,warn时,会写入error.log,如下所示:

var fs = require('fs'),
Console = console.Console;
var normalStream = fs.createWriteStream('./logs/normal.log'),
errStream = fs.createWriteStream('./logs/error.log');
var logger = new Console(normalStream,errStream);
logger.log('hello world!');

运行结果如下:

normal.log:

hello world!

error.log:

error code is 101

Node.js:console模块的更多相关文章

  1. Node.js的模块载入方式与机制

    Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的API给开发者,并且它们在Node进程开始 ...

  2. Node.js Web模块

    什么是Web服务器? Web服务器是处理由HTTP客户端发送的,如web浏览器的HTTP请求的软件应用程序,并返回响应于客户端网页. Web服务器通常伴随着图片,样式表和脚本的HTML文档. 大多数W ...

  3. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...

  4. Node.js:模块

    概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 expor ...

  5. Node.js的安装以及Node.js的模块管理

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

  6. Node.js DNS 模块

    Node.js DNS 模块用于解析域名.引入 DNS 模块语法格式如下: var dns = require("dns") 方法 序号 方法 & 描述 1 dns.loo ...

  7. Node.js Net 模块

    Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,我们可以通过以下方式引入该模块: var net = require("net") ...

  8. Node.js OS 模块

    Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模块: var os = require("os") 方法 序号 方法 & 描述 1 os ...

  9. Node.js Path 模块

    Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: var path = require("path") 方法 序号 方法 & ...

  10. 38..Node.js工具模块---底层的网络通信--Net模块

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/ ...

随机推荐

  1. 网页提交中文到WEB容器的经历了些什么过程....

    先准备一个网页 <html><meta http-equiv="Content-Type" content="text/html; charset=gb ...

  2. 阿里签名中URLEncode于C#URLEncod不同之处

    问题 如上图所示,阿里云的PercentEncode 转换! 为 %21 PercentEncode 源码为: package com.aliyuncs.auth; import java.io.Un ...

  3. Concepts:Request 和 Task

    当SQL Server Engine 接收到Session发出的Request时,SQL Server OS将Request和Task绑定,并为Task分配一个Workder.在TSQL Query执 ...

  4. 我为Net狂 ~ 社交平台系列小集合!

    微信平台: 我为Net狂(dotNetCrazy) 资源贴吧: http://tieba.baidu.com/f?kw=毒逆天 个人博客: http://dunitian.cnblogs.com/ h ...

  5. 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)

    Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...

  6. 了不起的 nodejs-TwitterWeb 案例 bug 解决

    了不起的nodejs算是一本不错的入门书,不过书中个别案例存在bug,按照书中源码无法做出和书中相同效果,原本兴奋的心情掺杂着些许失落. 现在我们看一下第七章HTTP,一个Twitter Web客户端 ...

  7. Intel Media SDK H264 encoder GOP setting

    1 I帧,P帧,B帧,IDR帧,NAL单元 I frame:帧内编码帧,又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随 ...

  8. 设计模式之行为类模式大PK

                                        行为类模式大PK 行为类模式包括责任链模式.命令模式.解释器模式.迭代器模式.中介者模式.备忘录模式.观察者模式.状态模式.策略 ...

  9. C++ 11 多线程--线程管理

    说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...

  10. C#制作简易屏保

    前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...