Node.js API —— util(工具)

// 说明

Node API 版本为 v0.10.31。
    中文参考:http://nodeapi.ucdok.com/#/api/http://blog.sina.com.cn/oleoneoy

本段为博主注解。

目录

● 工具
    ○ 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   // true
5 util.isArray(new Array)
6   // true
7 util.isArray({})
8   // false

util.isRegExp(object)

如果给出的“对象”是一个正则表达式则返回 true。否则返回 false。

1 var util = require(‘util‘);
2
3 util.isRegExp(/some regexp/)
4   // true
5 util.isRegExp(new RegExp(‘another regexp‘))
6   // true
7 util.isRegExp({})
8   // false

util.isDate(object)

如果给出的“对象”是一个日期则返回 true。否则返回 false。

1 var util = require(‘util‘);
2
3 util.isDate(new Date())
4   // true
5 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   // true
5 util.isError(new TypeError())
6   // true
7 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); // true
17 console.log(MyStream.super_ === events.EventEmitter); // true
18
19 stream.on("data", function(data) {
20   console.log(‘Reveived data: "‘ + data + ‘"‘);
21 })
22 stream.write("It works!"); // Received data: "It works!"
时间: 2024-11-03 21:39:43

Node.js API —— util(工具)的相关文章

Node.js API —— About this Documentation(关于本文档)

// 说明    Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/ 本段为博主注解. 目录 ● 关于本文档    ○ 稳定性指标    ○ JSON 输出 关于本文档 本文档的目的是既能从参考文档角度也能从概念概览角度综合地解释 Node.js API.每个小节描述了一个内建模块或较之上层的核心模块.    如若合适,属性类型.方法参数和事件监听器的参数会详细地在主标题下面列出.    每个 .html 文件都有一个与之

基于Node.js的自动化工具Gulp

基于Node.js的自动化工具Gulp What is gulp? gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,不仅可以很愉快的编写代码,而且大大提高我们的工作效率. gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript.coffee.sass.less.html/image.css 等文件的测试.检查.合并.压缩.格式化.浏览器自动刷新.部

详解Node.js API系列C/C++ Addons(3) 程序实例

http://blog.whattoc.com/2013/09/08/nodejs_api_addon_3/ 再续前文,前文介绍了node.js 的addon用法和google v8 引擎,下面,我们进入真正的编码,下面将会通过六个例子,学习node addon 范例,了解addon编程的特性 创建一个空项目 随机数模块 向模块传递参数 回调函数处理 线程处理 对象管理 创建一个空项目 vi modulename.cpp #include <node.h> void RegisterModul

node.js(API解读) - process (http://snoopyxdy.blog.163.com/blog/static/60117440201192841649337/)

node.js(API解读) - process 2011-10-28 17:05:34|  分类: node |  标签:nodejs  nodejsprocess  node.jsprocess  nodjsapi  node.jsapi   |举报 |字号 订阅 下载LOFTER 我的照片书  | nodejs的process是一个全局对象,他提供了一些方法和属性,node.js官方的API说的很简单,并没有把一些详细的应用方法和作用写出来,下面结合我自己的学习,做一下小结吧.1.Even

Node.js API

Node.js v4.4.7 Documentation(官方文档) Buffer Prior to the introduction of TypedArray in ECMAScript 2015 (ES6), the JavaScript language had no mechanism for reading or manipulating streams of binary data(二进制数据). The Buffer class was introduced as part of

Node.js 命令行工具的编写

日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作.其编写也不难,和日常编写 Node.js 代码并无二致. package.json 中的 bin 字段 一个 npm 模块,如果在 package.json 中指定了 bin 字段,那说明该模块提供了可在命令行执行的命令,这些命令就是在 bin 字段中指定的. package.json { "bin": { "myapp": "./cli.js" } } 程序安装后会可在

Node.js API —— process(进程)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解. 目录 ● 进程    ○ Event: 'exit'    ○ Event: 'uncaughtException'    ○ Signal Events    ○ process.stdout    ○ process.stderr ○ process.stdin ○ pro

Node.js API学习笔记(一)

此文章已经发表于本人博客. Terminal(终端) 说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示信息并能接收信息并处理,这个东东就是终端.至于什么伪终端应该就是用软件实现使一套输入输出设备 可以支持多个软终端. 这里说下node.js中有关的终端模块3个,分别是:STDIO.TTY.REPL. 一.STDIO 如果我没理解错控制台应该是属于noddjs标准的输入输出,一般把信息输出到stdou

NTVS:把Visual Studio变成Node.js IDE 的工具

NTVS(Node.js Tools for Visual Studio) 运行于VS2012或者VS2013.一些node.js的爱好者已经从PTVS(Python Tools for Visual Studio)转向并开始为VS做些node工具.同时,PTVS团队也在node.js整合上下功夫,于是他们都专注于NTVS使之成为一个社区项目.NTVS是由给你带来PTVS的相同团队开发的,并且得到了来自Red Gate的Bart Read(他开发了Node Packaged Modules图形用