本文基于 Node.js v7.2.0 文档解析 , 官方文档https://nodejs.org/api/util.html
UTIL模块的基本介绍
util模块,是一个Node.js核心模块,用于弥补核心JavaScript的一些功能过于精简的不足。并且还提供了一系列常用工具,用来对数据的输出和验证
util.debuglog(string) (用的少)
{string} - 被调试的程序节点部分 , 返回值: {Function} 日志处理函数
这个方法是在存在NODE_DEBUG环境变量的基础上,创建一个有条件写到stderr里的函数。
如果“节点” {string} 的名字出现在这个环境变量里,那么就返回一个功能类似于console.error()的函数.如果不是,那么返回一个空函数.
const util = require('util');
//NODE_DEBUG=mine node node-util.js
const debuglog = util.debuglog('mine');
debuglog('test from mine [%d]', 123)
代码是
输出是
util.format(format[, ...args]) 字符串格式化 【输出的时候实用】
format函数根据第一个参数,返回一个格式化字符串,支持的占位符有:"%s(字符串)"、"%d(数字<整型和浮点型>)"、"%j(JSON)"、"%%(转换成1个%字符串)"
let util = require('util')
let testJson = { title : "标题" }
let t1 = util.format('%s %d ----%j%%sass','nihao',991,testJson)
//nihao 991 ----{"title":"标题"}%sass
console.log(t1);
util.inspect(object[, options])
util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换为字符串的函数,通常用于调试和错误输出。它至少接受一个参数object,即要转换的对象
将object对象转换为字符串,
showHidden可选,是一个bool类型的参数,如果为true,则会输出更多的隐藏信息
depth可选,为最大的地柜层数,如果对象有很多层的话,需要对输出信息的层数进行限制,默认为两层,如果要地柜到底,用null就可以了
colors可选, 如果为true,输出格式就会以ANSI颜色编码,通常用于在终端显示更漂亮的效果
这个方法不会简单的吧对象转换为字符串形式,即使对象定义了tostring方法也不会调用
//V7 以前的使用方法
util.inspect(path,true,null,true)
//V7 以后的使用方法,2者都行
util.inspect(util, { showHidden: true, depth: null })
util.inherits(constructor, superConstructor) 【最实用】
继承 是一个实现对象间原型继承的函数
var util = require('util');
function Child() {
this.name = 'Child';
this.sayHello = function() {
console.log('Hello ' + this.name);
};
}
Child.prototype.showName = function() {
console.log(this.name);
};
function Sub() {
this.name = 'sub';
}
util.inherits(Sub, Child);
var objChild = new Child();
objChild.showName();
objChild.sayHello();
console.log(objChild);
var objSub = new Sub();
objSub.showName();
console.log(objSub);