nodeJS入门—工具(util)

来源:互联网 发布:比较复杂的sql语句 编辑:程序博客网 时间:2024/06/05 04:10
使用范例:
console.log(require('util').format('%s:%s', 'foo'));//?
console.log(require('util').format('%s:%s', 'foo', 'bar','baz')); //?
require('util').debug('message on stderr');
require('util').log('Timestamped message.');

//util.inspect(object, [showHidden], [depth], [colors])返回object 的字符串表示,用于调试。
// 如果 showHidden 为 true,那么对象不可枚举的属性也会显示。
// 如果提供了 depth,它将指定 inspect 需要递归多少层,在查看复杂对象时很有用。
// 默认只递归两层。如果要无限递归,给 depth 传 null。
//If colors is true, the output will be styled with ANSI colorcodes. Defaults to false.
var util = require('util');
//console.log(util.inspect(util, true, null));

//util.isArray(object)Returns true if the given "object" is anArray. false otherwise.
console.log(util.isArray([]));
console.log(util.isArray(new Array));
console.log(util.isArray({}));

//判断给定对象是不是正则表达式。
console.log(util.isRegExp(/some regexp/));
console.log(util.isRegExp(new RegExp('anotherregexp')));
console.log(util.isRegExp({}));

console.log(util.isDate(new Date()));
console.log(util.isDate(Date()));// false (without 'new'returns a String)
console.log(util.isDate({}));// false



util
util.format()
util.debug(string)
util.log(string)
util.inspect(object, showHidden=false, depth=2)
util.isArray(object)
util.isRegExp(object)
util.isDate(object)
util.isError(object)
util.pump(readableStream, writableStream,[callback])

util.inherits(constructor, superConstructor)


 

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([])  // trueutil.isArray(new Array)  // trueutil.isArray({})  // false

util.isRegExp(object)

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

var util = require('util');util.isRegExp(/some regexp/)  // trueutil.isRegExp(new RegExp('another regexp'))  // trueutil.isRegExp({})  // false

util.isDate(object)

判断给定对象是否是日期

var util = require('util');util.isDate(new Date())  // trueutil.isDate(Date())  // false (没有 'new' 返回一个 String)util.isDate({})  // false

util.isError(object)

判断一个对象是否是一个Error

var util = require('util');util.isError(new Error())  // trueutil.isError(new TypeError())  // trueutil.isError({ name: 'Error', message: 'an error occurred' })  // false

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

实验

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

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); // trueconsole.log(MyStream.super_ === events.EventEmitter); // truestream.on("data", function(data) {    console.log('Received data: "' + data + '"');})stream.write("It works!"); // Received data: "It works!"