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. 【.net 深呼吸】细说CodeDom(7):索引器

    在开始正题之前,先补充一点前面的内容. 在方法中,如果要引用方法参数,前面的示例中,老周使用的是 CodeVariableReferenceExpression 类,它用于引用变量,也适用于引用方法参 ...

  2. 【造轮子】打造一个简单的万能Excel读写工具

    大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...

  3. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  4. 为你的Web程序加个启动画面

    .Net开发者一定熟悉下面这个画面: 这就是宇宙第一IDE Visual Studio的启动画面,学名叫Splash Screen(或者Splash Window).同样,Javar们一定对Eclip ...

  5. Word/Excel 在线预览

    前言 近日项目中做到一个功能,需要上传附件后能够在线预览.之前也没做过这类似的,于是乎就查找了相关资料,.net实现Office文件预览大概有这几种方式: ① 使用Microsoft的Office组件 ...

  6. IE8/9 本地预览上传图片

    本地预览的意思是,在选择图片之后先不上传到服务器,而是由一个<img>标签来预览本地的图片,非 IE8/9 浏览器可以从<input type="file"/&g ...

  7. css样式之border-radius

    border-radius 属性设置边框的园角 可能的值:像素,百分比 扩展延伸 html代码 <div></div> css代码 div { height: 200px; w ...

  8. Extjs 让combobox写起来更简单

    也已经写了很久时间的extjs ,每次都用到很多的combobox,配置很多东西觉得实在是太麻烦,所以根据常用到的情况写了一个简便的combobox,再次记录下来,以免放在某个地方忘记了找不到了. 定 ...

  9. OpenDigg前端开源项目周报1219

    由OpenDigg 出品的前端开源项目周报第二期来啦.我们的前端开源周报集合了OpenDigg一周来新收录的优质的前端开发方面的开源项目,方便前端开发人员便捷的找到自己需要的项目工具等.react-f ...

  10. git提交项目到已存在的远程分支

    今天想提交项目到github的远程分支上,那个远程分支是之前就创建好的,而我的本地关联分支还没创建.   之前从未用github提交到远程分支过,弄了半个钟,看了几篇博文,终于折腾出来.现在把步骤整理 ...