Alat biasa Node.js


util ialah modul teras Node.js yang menyediakan koleksi fungsi yang biasa digunakan untuk mengimbangi kekurangan fungsi JavaScript teras yang terlalu diperkemas.


util.inherits

util.inherits(pembina, superConstructor) ialah fungsi yang melaksanakan pewarisan prototaip antara objek.

Ciri berorientasikan objek JavaScript adalah berasaskan prototaip, yang berbeza daripada yang berasaskan kelas biasa. JavaScript tidak menyediakan ciri peringkat bahasa bagi warisan objek, tetapi melakukannya melalui penyalinan prototaip.

Di sini kami hanya memperkenalkan penggunaan util.inherits Contohnya adalah seperti berikut:

var util = require('util'); 
function Base() { 
	this.name = 'base'; 
	this.base = 1991; 
	this.sayHello = function() { 
	console.log('Hello ' + this.name); 
	}; 
} 
Base.prototype.showName = function() { 
	console.log(this.name);
}; 
function Sub() { 
	this.name = 'sub'; 
} 
util.inherits(Sub, Base); 
var objBase = new Base(); 
objBase.showName(); 
objBase.sayHello(); 
console.log(objBase); 
var objSub = new Sub(); 
objSub.showName(); 
//objSub.sayHello(); 
console.log(objSub);

Kami mentakrifkan objek asas dan Sub yang diwarisi daripada Base mempunyai tiga takrifan dalam pembina Sifat dan fungsi yang ditakrifkan dalam prototaip diwarisi melalui util.inherits. Keputusan yang dijalankan adalah seperti berikut:

base 
Hello base 
{ name: 'base', base: 1991, sayHello: [Function] } 
sub 
{ name: 'sub' }

Nota: Sub hanya mewarisi fungsi yang ditakrifkan oleh Base dalam prototaip, dan atribut asas dan fungsi sayHello yang dicipta di dalam pembina tidak diwarisi oleh Sub .

Pada masa yang sama, sifat yang ditakrifkan dalam prototaip tidak akan dikeluarkan oleh console.log sebagai sifat objek. Jika kami mengalih keluar ulasan objSub.sayHello();, kami akan melihat:

node.js:201 
throw e; // process.nextTick error, or 'error' event on first tick 
^ 
TypeError: Object #<Sub> has no method 'sayHello' 
at Object.<anonymous> (/home/byvoid/utilinherits.js:29:8) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Array.0 (module.js:479:10) 
at EventEmitter._tickCallback (node.js:192:40)

util.inspect

util.inspect(objek,[showHidden],[depth ], [warna]) ialah kaedah yang menukar objek sewenang-wenangnya kepada rentetan, sering digunakan untuk nyahpepijat dan output ralat. Ia menerima sekurang-kurangnya satu objek parameter, iaitu objek yang hendak ditukar.

showHidden ialah parameter pilihan Jika nilainya benar, lebih banyak maklumat tersembunyi akan dikeluarkan.

Kedalaman mewakili bilangan maksimum tahap rekursi Jika objek adalah kompleks, anda boleh menentukan bilangan tahap untuk mengawal jumlah maklumat output. Jika kedalaman tidak ditentukan, 2 tahap rekursi akan dilakukan secara lalai Menentukan nol bermakna objek akan dilalui sepenuhnya tanpa mengehadkan bilangan aras rekursi. Jika nilai warna adalah benar, format output akan berkod warna ANSI, biasanya digunakan untuk memaparkan kesan yang lebih cantik dalam terminal.

Perlu ditegaskan khususnya bahawa util.inspect tidak hanya akan menukar objek kepada rentetan secara langsung, walaupun objek mentakrifkan kaedah toString, ia tidak akan dipanggil.

var util = require('util'); 
function Person() { 
	this.name = 'byvoid'; 
	this.toString = function() { 
	return this.name; 
	}; 
} 
var obj = new Person(); 
console.log(util.inspect(obj)); 
console.log(util.inspect(obj, true));

Hasil operasi ialah:

{ name: 'byvoid', toString: [Function] } 
{ toString: 
{ [Function] 
[prototype]: { [constructor]: [Circular] }, 
[caller]: null, 
[length]: 0, 
[name]: '', 
[arguments]: null }, 
name: 'byvoid' }

util.isArray(objek)

Jika parameter "objek" yang diberikan ialah tatasusunan, ia akan kembali benar , jika tidak ia kembali palsu.

var util = require('util');

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

util.isRegExp(object)

Mengembalikan benar jika parameter "objek" yang diberikan ialah ungkapan biasa, jika tidak, mengembalikan palsu.

var util = require('util');

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

util.isDate(objek)

Mengembalikan benar jika parameter "objek" yang diberikan ialah tarikh, jika tidak, mengembalikan palsu.

var util = require('util');

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

util.isError(objek)

Mengembalikan benar jika parameter "objek" yang diberikan ialah objek ralat, jika tidak mengembalikan palsu.

var util = require('util');

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

Untuk butiran lanjut, sila lawati http://nodejs.org/api/util.html untuk mendapatkan butiran.