您的位置:首页 > Web前端 > Node.js

nodeJS入门例子一—工具(util)

2013-03-27 11:26 344 查看


util

这些功能函数都放置在模块'util'。中,使用 require('util')访问。


util.format() 

返回格式化过的第一个参数的字符串,与printf类似。

第一个参数是一个包含数字或者是更多其他占位符的字符串。每个占位符都将用相应参数替换。支持的占位符有以下几种:

%s
 - String.
%d
 - Number (包含 integer 和 float).
%j
 - JSON.
%%
 - 一个百分号(
'%'
). 这不消耗参数.

如果占位符没有相应的参数,这个占位符将不会被替换。
util.format('%s:%s', 'foo'); // 'foo:%s'


如果参数个数多余占位符个数,多余的参数将使用
util.inspect()
 转换成字符串后追加到第一个参数字符串后。

util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'


如果当前没有需要格式化的参数。将返回所有参数组合而成的字符串,组合字符串中间以空格分开。使用
util.inspect()
 转换成字符串。
util.format(1, 2, 3); // '1 2 3'


util.debug(string) 

一个同步输出函数。当遇到标准错误(stderr)时过程(process)和输出(output)将被阻塞。

require('util').debug('message on stderr');


util.log(string) 

带有时间戳的标准输出。

require('util').log('Timestamped message.');
输出如下:
7 Dec 00:24:04 - ss


util.inspect(object, showHidden=false, depth=2) 

返回对象的字符串形式,在调试中很有用。

如果 showHidden 为 true, 对象的非枚举类型属性将显示。

如果 depth的值提供了,他告诉
inspect
格式化对象时多少次递归。检查大型复杂的对象,这是有用的。

默认递归为两次。传递null值给depath使其无限递归。

var util = require('util');

console.log(util.inspect(util, true, null));


util.isArray(object) 

返回给定的对象object是否是数组。

var util = require('util');

util.isArray([])
// true
util.isArray(new Array)
// true
util.isArray({})
// false


util.isRegExp(object) 

判断给定对象是不是正则表达式。

var util = require('util');

util.isRegExp(/some regexp/)
// true
util.isRegExp(new RegExp('another regexp'))
// true
util.isRegExp({})
// false


util.isDate(object) 

判断给定对象是否是日期
var util = require('util');

util.isDate(new Date())
// true
util.isDate(Date())
// false (没有 'new' 返回一个 String)
util.isDate({})
// false


util.isError(object) 

判断一个对象是否是一个Error
var util = require('util');

util.isError(new Error())
// true
util.isError(new TypeError())
// true
util.isError({ name: 'Error', message: 'an error occurred' })
// false


util.pump(readableStream, writableStream, [callback]) 

实验

readableStream
读取数据并发送到
writableStream
中,当
writableStream
.write(data)
返回 false 
readableStream
将暂停直到
 
writableStream
. [code]callback
 的drain[/code]错误处理函数发生调用。


util.inherits(constructor, superConstructor) 

从一个构造函数中继承另一个的原生方法。当一个新对象创建时,将从父构造函数(超类)中设置构造函数的原生态。

作为一个额外的便利,将通过构造访问超类
.super_
 property.
var util = require("util");
var events = require("events");

function MyStream() {
events.EventEmitter.call(this);
}

util.inherits(MyStream, events.EventEmitter);

MyStream.prototype.write = function(data) {
this.emit("data", data);
}

var stream = new MyStream();

console.log(stream instanceof events.EventEmitter); // true
console.log(MyStream.super_ === events.EventEmitter); // true

stream.on("data", function(data) {
console.log('Received data: "' + data + '"');
})
stream.write("It works!"); // Received data: "It works!"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: