node.js模块之util模块

util提供了各种使用的工具。require(‘util‘) to access them.

Util.format(format,[..])

Returns a formatted string using the first argument as a printf-like format.

The first argument is a string that contains zero or more placeholders. Each placeholder is replaced with the converted value from its corresponding argument. Supported placeholders are:

  • %s - String.
  • %d - Number (both integer and float).
  • %j - JSON.
  • % - single percent sign (‘%‘). This does not consume an argument.

If the placeholder does not have a corresponding argument, the placeholder is not replaced.

util.format(‘%s:%s‘, ‘foo‘); // ‘foo:%s‘

If there are more arguments than placeholders, the extra arguments are converted to strings withutil.inspect() and these strings are concatenated, delimited by a space.

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

If the first argument is not a format string then util.format() returns a string that is the concatenation of all its arguments separated by spaces. Each argument is converted to a string with util.inspect().

util.format(1, 2, 3); // ‘1 2 3‘

util.log(string)

带有时间戳的标准输出。

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

util.inspect(object, [options])#

Return a string representation of object, which is useful for debugging.

An optional options object may be passed that alters certain aspects of the formatted string:

  • showHidden - if true then the object‘s non-enumerable properties will be shown too. Defaults to false.为true时对象的非枚举类型属性将显示
  • depth - tells inspect how many times to recurse while formatting the object. This is useful for inspecting large complicated objects. Defaults to 2. To make it recurse indefinitely pass null.
  • colors - if true, then the output will be styled with ANSI color codes. Defaults to false. Colors are customizable, see below.
  • customInspect - if false, then custom inspect() functions defined on the objects being inspected won‘t be called. Defaults to true.

Example of inspecting all properties of the util object:

var util = require(‘util‘);

console.log(util.inspect(util, { showHidden: true, depth: null }));

Customizing util.inspect colors#

Color output (if enabled) of util.inspect is customizable globally via util.inspect.styles andutil.inspect.colors objects.

util.inspect.styles is a map assigning each style a color from util.inspect.colors. Highlighted styles and their default values are: number (yellow) boolean (yellow) string (green) date (magenta) regexp(red) null (bold) undefined (grey) special - only function at this time (cyan) * name (intentionally no styling)

Predefined color codes are: whitegreyblackbluecyangreenmagentared and yellow. There are also bolditalicunderline and inverse codes.

Objects also may define their own inspect(depth) function which util.inspect() will invoke and use the result of when inspecting the object:

var util = require(‘util‘);

var obj = { name: ‘nate‘ };
obj.inspect = function(depth) {
  return ‘{‘ + this.name + ‘}‘;
};

util.inspect(obj);
  // "{nate}"

util.isArray(object)#

Returns true if the given "object" is an Arrayfalse otherwise.

var util = require(‘util‘);

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

util.isRegExp(object)#

Returns true if the given "object" is a RegExpfalse otherwise.

var util = require(‘util‘);

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

util.isDate(object)#

Returns true if the given "object" is a Datefalse otherwise.

var util = require(‘util‘);

util.isDate(new Date())
  // true
util.isDate(Date())
  // false (without ‘new‘ returns a String)
util.isDate({})
  // false
下面这个很实用:

util.inherits(constructor, superConstructor)#

Inherit the prototype methods from one constructor into another. The prototype of constructor will be set to a new object created from superConstructor.

As an additional convenience, superConstructor will be accessible through the constructor.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!"
 
时间: 2024-10-03 22:37:21

node.js模块之util模块的相关文章

node.js(七) 子进程 child_process模块

众所周知node.js是基于单线程模型架构,这样的设计可以带来高效的CPU利用率,但是无法却利用多个核心的CPU,为了解决这个问题,node.js提供了child_process模块,通过多进程来实现对多核CPU的利用. child_process模块提供了四个创建子进程的函数,分别是spawn,exec,execFile和fork. 1.spawn函数的简单用法 spawn函数用给定的命令发布一个子进程,只能运行指定的程序,参数需要在列表中给出.如下示例: var child_process

Node.js笔记(0001)---connect模块

首先来看这一部分代码 1 /** 2 * Created by bsn on 14-7-1. 3 */ 4 var connect = require('connect'); 5 6 var app = connect(); 7 function hello(req, res, next) { 8 console.log(req.url); 9 res.end('hello bsn'); 10 next(); 11 } 12 13 function helloAgain(req, res) {

node.js第二天之模块

一.模块的定义 1.在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. 2.狭义的说,每一个JavaScript文件都是一个模块:而多个JavaScript文件之间可以相互require,他们共同实现了一个功能,他们整体对外,又称为一个广义上的模块. 3.Node.js中,一个JavaScript文件中定义的变量.函数,都只在这个文件内部有效.当需要从此JS文件外部引用这些变量.函数时,必须使用exports对象进行暴露

Node.js 常用工具util包

Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.isError(obj); util.isDate(obj); util.inherits(constr,super); util.isRegExp(/some regexp/); util.isArray(obj); util.inspect(obj); util.inherits util.inherits(constructor, s

node.js 下使用 util.inherits 来实现继承

上一篇博客说到了node.js继承events类实现事件发射和事件绑定函数,其中我们实现了一个公用基类 _base ,然后在模型中差异化的定义了各种业务需要的模型并继承 _base 公共基类.但是其中的继承是一笔带过,今天详细的说下node.js中继承. var events=require('events'); var util=require('util');   function _base(){     this.emitter=new events.EventEmitter(this)

Node.js权威指南 (4) - 模块与npm包管理工具

4.1 核心模块与文件模块 / 574.2 从模块外部访问模块内的成员 / 58 4.2.1 使用exports对象 / 58 4.2.2 将模块定义为类 / 58 4.2.3 为模块类定义类变量或类函数 / 614.3 组织与管理模块 / 61 4.3.1 从node_modules目录中加载模块 / 61 4.3.2 使用目录来管理模块 / 62 4.3.3 从全局目录中加载模块 / 624.4 模块对象的属性 / 634.5 包与npm包管理工具 / 65 4.5.1 Node.js中的包

使用Node.js的socket.io模块开发实时web程序

首发:个人博客,更新&纠错&回复 今天的思维漫游如下:从.net的windows程序开发,摸到nodejs的桌面程序开发,又熟悉了一下nodejs,对“异步”的理解有了上上周对操作系统的学习而更能理解.然后发现了Node.js中的socket.io这个模块,又觉得跟前几天用.net做客户端的socket游戏了.技术世界,兜兜转转,相逢一笑,疑是故人. socket.io用来做实时web程序,解决之前的B/S程序只有无状态连接,特定需求还需要用长连接这种“奇技淫巧”的问题.当然,这是html

NODE.JS API —— Modules(模块)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解. 目录 ● 模块    ○ Cycles    ○ Core Modules    ○ File Modules    ○ Loading from node_modules Folders    ○ Folders as Modules    ○ Caching ■ Modul

node.js的fs核心模块读写文件操作 -----由浅入深

node.js 里fs模块 常用的功能 实现文件的读写 目录的操作 - 同步和异步共存 ,有异步不用同步 - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFile方法- 文件大分流读取,stream - 引入fs模块 - let fs=require('fs') 同步读取文件 -fs.readFileSync('路径',utf8); let result=fs.readFileSync('./1.txt','utf8'); 异步读取文件,用参数err捕获错

编写浏览器和Node.js通用的JavaScript模块

长期以来JavaScript语言本身不提供模块化的支持, ES6中终于给出了 from, import等关键字来进行模块化的代码组织. 但CommonJS.AMD等规范已经被广为使用,如果希望你的JavaScript同时支持浏览器和Node.js, 现在只有这几种方式: 通过 browserify等工具进行转换. 提供浏览器端CommonJS框架,比如这个简易的 CommonJS 实现. 通过小心的编码来支持多种环境. browserify几乎可以保证Node.js下测试通过的代码在浏览器中仍然