NodeJS - 1. console
学习一门语言的过程中,调试这项技能一般是需要先点亮的,比如PHP中的var_dump()、JAVA中的System.out.println()等等。
JS中这个东西叫做控制台console,浏览器中我们一般用console.log()来进行调试输出;而在Node中,console的用法有了更多的诠释。
以下部分翻译自node.js文档-console。
Console模块
Console类
new Console(process.stdout, process.stderr)创建一个新的Console对象可以通过传入一个或两个可写入的Stream实例。
全局的console就是一个传入了process.stdout和process.stderr的Console对象。
下面给出一个自定义Console对象的例子。
let fs = require('fs')
const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
// custom simple logger
let Console = require('console').Console
const logger = new Console(output, errorOutput);
// use it like console
const count = 5;
logger.log('count: %d', count);log/info/warn/error
console.log([data][, ...args])console.log的用法和浏览器中的基本相同,在node中console.log将信息输出到指定的Stream中,一般情况下为process.stdout。
info和warn是log的别名,用法和log相同。
传入该方法的参数,都会通过util.format()方法进行格式化。
error方法会将信息输出到另外一个Stream中,一般为process.stderr。
time/timeEnd
console.time(label)
//...
console.timeEnd(label)这是一组打点的方法,会在标准输出中打印出两段代码中间部分代码的执行时间。
console.time('small loop')
for (var i = 1; i < 10000000; i++) {
}
console.timeEnd('small loop')
//small loop: 9.721msassert
console.assert(value[, message][, ...args])用于断言的方法,如果传入value为非true,那么将会抛出AssertionError,并将后面的参数传入util.format()方法进行格式化错误输出。
在浏览器中,assert方法只会将错误信息打印到控制台上,而在node中,错误将会被抛出,如果没有相关的捕获程序,程序将中止。
dir
console.dir(obj[, options])dir方法使用util.inspect()方法作用于参数对象,并将输出结果打印到标准输出上。
options有三个选项showHidden、depth、colors。