首页 > 代码库 > Node.js API —— util(工具)
Node.js API —— util(工具)
// 说明
Node API 版本为 v0.10.31。
中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy
中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy
本段为博主注解。
目录
● 工具
○ util.format(format, [...])
○ util.format(format, [...])
○ util.debug(string)
○ util.error([...])
○ util.puts([...])
○ util.print([...])
○ util.log(string)
○ util.inspect(object, [options])
■ Customizing util.inspect colors
○ util.isArray(object)
○ util.isRegExp(object)
○ util.isDate(object)
○ util.isError(object)
○ util.pump(readableStream, writableStream, [callback])
○ util.inherits(constructor, superConstructor)
工具
稳定性:4 - API 冻结这些函数在模块 ‘util‘ 中。使用 require(‘util‘) 来访问它们。
util.format(format, [...])
返回一个格式化的字符串,第一个参数作为 printf 形式的格式使用。
第一个参数是一个包含0个或多个占位符的字符串。每个占位符被它相应的参数转换过来的值所替换。支持的占位符:
● %s - 字符串。
● %d - 数值(包括整数和浮点数)。
● %j - JSON。
● % - 单个百分号(‘%‘)。这不会消耗一个参数。
如果占位符没有相应的参数,它不会被替换。
1 util.format(‘%s:%s‘, ‘foo‘); // ‘foo:%s‘
如果参数比占位符更多,额外的参数均使用 util.inspect() 转换成字符串,并将得到的字符串使用空格分隔连接起来。
1 util.format(‘%s:%s‘, ‘foo‘, ‘bar‘, ‘baz‘); // ‘foo:bar baz‘
如果第一个参数不是格式化字符串那么 util.format() 返回一个将所有参数使用空格分隔连接起来的字符串。每个参数使用 util.inspect() 转换成字符串。
1 util.format(1, 2, 3); // ‘1 2 3‘
util.debug(string)
一个同步输出函数。将阻塞进程并立即向 stderr 输出 string。
1 require(‘util‘).debug(‘message on stderr‘);
util.error([...])
和 util.debug() 一样,除了这将把所有参数立即输出到 stderr。
util.puts([...])
一个同步输出函数。阻塞进程并将所有参数每个都以换行符结束输出到 stdout。
util.print([...])
一个同步输出函数。将阻塞进程,把所有参数连接成字符串然后输出到 stdout。不在每个参数后面添加换行符。
util.log(string)
向 stdout 输出时间戳。
1 require(‘util‘).log(‘Timestamped message.‘);
util.inspect(object, [options])
返回一个表示 object 的字符串,那对调试是很有用的。
可以传递一个可选的 options 对象,用以改变格式化字符串的某些方面。
● showHidden - 如果为 true,那么对象的不可枚举属性将也能被显示。默认为 false。
● depth - 告诉 inspect 当格式化对象时递归多少次。这在查看非常复杂的对象时是很有用的。默认为2。想让它无限递归传递 null。
● colors - 如果为 true,那么那么输出将使用 ANSI 颜色代码风格。默认为 false。颜色可以定做,见下文。
● customInspect - 如果为 false,那么定义在正在被查看的对象上的定制 inspect() 函数将不会被调用。默认为 true。
查看 util 对象所有属性的例子:
1 var util = require(‘util‘);2 console.log(util.inspect(util, { showHidden: true, depth: null}));
Customizing util.inspect colors
给 util.inspect 的输出着色(如果被激活)是全局可定制的,只要通过 util.inspect.styles 和 util.inspect.colors 对象。
util.inspect.styles 是一个为每个样式分配一个 util.iinspect.colors 中的颜色的映射。高亮样式和它们的默认值是:数值(黄色),布尔值(黄色),字符串(绿色),日期(洋红),正则表达式(红色),null(粗体),undefined(灰色),特殊情况——这时候只会是函数(青色)* 属性名(故意地不加样式)
预定义的颜色代号:白色,灰色,黑色,蓝色,青色,绿色,洋红和黄色。也有粗体,斜体,下划线和反相代号。
对象也可以定义它们自己的 inspect(depth) 函数来让 util.inspect() 调用并在查看对象时使用其返回结果。
1 var util = require(‘util‘);2 3 var obj = { name: ‘nate‘ };4 obj.inspect = function(depth) {5 return ‘{‘ + this.name + ‘}‘;6 };7 8 util.inspect(obj);9 //"{nate}"
util.isArray(object)
如果给出的“对象”是一个数组则返回 true。否则返回 false。
1 var util = require(‘util‘);2 3 util.isArray([])4 // true5 util.isArray(new Array)6 // true7 util.isArray({})8 // false
util.isRegExp(object)
如果给出的“对象”是一个正则表达式则返回 true。否则返回 false。
1 var util = require(‘util‘);2 3 util.isRegExp(/some regexp/)4 // true5 util.isRegExp(new RegExp(‘another regexp‘))6 // true7 util.isRegExp({})8 // false
util.isDate(object)
如果给出的“对象”是一个日期则返回 true。否则返回 false。
1 var util = require(‘util‘);2 3 util.isDate(new Date())4 // true5 util.isDate(Date())6 // false (without ‘new‘ returns a String)7 util.isDate({})8 // false
util.isError(object)
如果给出的“对象”是一个错误则返回 true。否则返回 false。
1 var util = require(‘util‘);2 3 util.isError(new Error())4 // true5 util.isError(new TypeError())6 // true7 util.isError({ name: ‘Error‘, message: ‘an error occurred‘ })8 // false
util.pump(readableStream, writableStream, [callback])
稳定性:0 - 反对:使用 readableStream.pipe(writableStream)
从 readableStream 读取数据并将其发送到 writableStream。当 writableStream.write(data) 返回 false,readableStream 将暂停直到 writableStream 发生了 drain 事件。callback 有一个错误作为它的唯一参数,且当 writableStream 关闭或错误发生时被调用。
util.inherits(constructor, superConstructor)
从一个构造函数继承原型上的方法到另一个构造函数。constructor 的原型将设置为一个从 superConstructor 创建的新对象。
作为一个附加的便利,superConstructor 可以通过 constructor.super_ 属性访问。
1 var util = require("util"); 2 var events = require("events"); 3 4 function MyStream() { 5 events.EventEmitter.call(this); 6 } 7 8 util.inherits(MyStream, events.EventEmitter); 9 10 MyStream.prototype.write = function(data) {11 this.emit("data", data);12 }13 14 var stream = new MyStream();15 16 console.log(stream instance of events.EventEmitter); // true17 console.log(MyStream.super_ === events.EventEmitter); // true18 19 stream.on("data", function(data) {20 console.log(‘Reveived data: "‘ + data + ‘"‘);21 })22 stream.write("It works!"); // Received data: "It works!"
Node.js API —— util(工具)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。