站长杂谈 > web前端
web前端web前端

NodeJS控制台

1.1    console概述
console对象代表控制台,与Chrome中的控制台一样,不过Node中的控制台输出至CMD窗口,可以通过console对象的各种方法向控制台中输出内容。
 

 
1.2    常用方法举例
该模块导出两个特定组件
 
一个 Console 类,包含 console.log() 、 console.error() 和 console.warn() 等方法,可以用于写入到任何 Node.js 流。
 
一个全局的 console 实例,用于写入 stdout 和 stderr。 stderr是错误输出,stdout是标准输出。
因为该对象是一个全局变量,所以使用时无需调用 require('console')。
 
 
例1:常见的集中输出效果
//普通输出 console.info() 函数是 console.log() 的一个别名。
console.log("hello word");
//错误输出console.warn() 函数是 console.error() 的一个别名。
 console.error("错误消息");
//象的属性,包括子对象的属性以列表形式输出
var o={
    username:"mr tang",
    sex:"boy",
    getName:function(){
        return this.name;
    }
}
console.dir(o);
 
例2:统计一段代码执行的时间 
启动一个定时器,用以计算一个操作的持续时间。 定时器由一个唯一的 label 标识。 当调用 console.timeEnd() 时,可以使用相同的 label 来停止定时器,并以毫秒为单位将持续时间输出到 stdout。 定时器持续时间精确到亚毫秒。
 //time(flag)  timeEnd(flag) 统计一段代码的执行时间,注意timetimeEndflag需一致
 console.time("t1"); for(var i=0;i<1000;i++){     console.log("hehe"); } console.timeEnd("t1");
例3:断言(了解)
断言其实是防止程序意外出错的一种宏,如果其参数计算为假,则程序发出警告,且退出。
assert用在那些你知道绝对不会发生的事情上,但是因为人总是会犯错误,你写出来的东西跟你想的有可能不一样。所以assert用来捕捉的是程序员自己的错误。同理,exception捕捉的是用户或者环境的错误。
 //assert(表达式,"文本消息") 断言:表达式如果为真
 console.assert(3>10,"断言失败,条件不成立");
例4:简单记录日志
通过传入一个或两个可写流实例,创建一个新的 Console 对象。 stdout 是一个可写流,用于打印日志或输出信息。 stderr 用于输出警告或错误。 如果没有传入 stderr ,则警告或错误输出会被发送到 stdout 。

var fs= require("fs");
var output = fs.createWriteStream('./stdout.log',{flags:"r+"});
var errorOutput = fs.createWriteStream('./stderr.log',{flags:"r+"});// flags 写入模式为追加r+
// 自定义的简单记录器
var Console = require('console').Console;
var logger = new Console(output, errorOutput);
// 像 console 一样使用
logger.error("神经短路了1");//占位符格式化字符串 支持 %s 和 %d 两种
//tdout.log 中打印: count 5

logger.log('count: %s', "5");//格式化输出
logger.error("神经短路了2");///占位符格式化字符串 支持 %s 和 %d 两种
//tdout.log 中打印: count 5

logger.log('count: %s', "5");//格式化输出
  
扩展讲解
 
浏览器的控制台支持得更多,还支持css样式。
console.log('%cMy name is LiLei', 'color: #fff; background: #f40; font-size: 24px;');

web前端ruitiancnweb前端z_vae@sina.com

web前端