nodejs 之 util module

来源:互联网 发布:php代码去除注视 编辑:程序博客网 时间:2024/06/01 18:56

var util = require('util');
/** util.format(format[,...])按给定的格式输出数据
    %s--String,%d--Number,%j--JSON,%--百分符号不为一个参数
 */   
 util.format('%s:%s','f00');
 console.log(util.format('%s:%s','f00'));   // 'f00:%s'
 console.log(util.format('%s:%s', 'foo', 'bar', 'baz')); // 'foo:bar baz'
 console.log(util.format(1, 2, 3)); // '1 2 3'
 
/** util.debug(string)同步输出函数,将阻止进程并立即将string给stderr
*/
  util.debug('message on stderr.');


/** util.error([...])除了它会立即将所有参数给stderr外,和util.debug()一样
*/
 util.error('util error.');
 

/** util.puts([...])同步输出函数,将阻止进程并立即将所有参数带换行地输出给stdout
*/
 util.puts('block','process');
 
 
/** util.print([...])同步输出函数,将阻止进程,将每个参数都转为字符串在给stdout,但不带换行
*/
  util.print('block','process','\n');
 

/** util.log(string) 在stdout中输出,并带时间戳
*/
 util.log('Timestamped message.')


/** util.inspect(object[, showHidden][, depath][, colors])
    以字符串类型返回object的描述,对debugging有所帮助
    如果showHidden=true,那么object的非枚举属性也会被显示,默认为false
    如果depath给定了,inspect方法就会进行几次递归。在处理分成复杂的object时很有用
    默认递归两次
    如果colors=true,输出数据将带颜色。默认为false
*/
console.log(util.inspect(util))
/** console.log(util.inspect(util,true,null))
    console.log(util.inspect(util,true,null,true))
*/



/** util.isArray(object)判断object是否为数组  */
  console.log(util.isArray([]))           // true
  console.log(util.isArray(new Array))    // true
  console.log(util.isArray({}))           //false




/** util.isRegExp(object) 判断object是否为正则对象 */
 console.log(util.isRegExp(/some regexp/));                 // true
 console.log(util.isRegExp(new RegExp('another regexp')))   // true
 console.log(util.isRegExp({}))                             //false


/**  util.isDate(object) 判断object是否为日期对象*/
  console.log(util.isDate(new Date()))                  // true
  console.log(util.isDate(Date()))                     //false--无new返回的是字符串
  console.log(util.isDate({}))                          //false
 
 
 
/** util.isError(object) 判断object是否为错误对象 */
  console.log(util.isError(new Error()))                                   // true
  console.log(util.isError(new TypeError()))                               // true
  console.log(util.isError({name:'Error',message:'an error occured.'}))    //false
 
 
 
/** util.pump(readableStream,writableStream[,callback])
   从readableStream读数据,并把数据给writableStream
   当writableStream.write(data)写数据时函数返回是false时
   readableStream将停止工作,直到writableStream中的drain方法被调用
   callback只有一个error参数,当writableStream关闭或出错时该方法才被调用
 */


/**
   util.inherits(constructor,superConstructor)
   
*/

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);  //.super_得到父类
 
stream.on('data',function(data){
        console.log('Received data:' + data);
    })
stream.write('It works!');
 
 
 
 
 
 

原创粉丝点击