Node.js merangkumi julat komponen yang disatukan untuk membentuk persekitaran masa jalan JavaScript. Dalam siri kami tentang Seni Bina Node.js - Pengenalan kepada Node.js, kami meneroka pelbagai komponen yang membentuk Node.js dan fungsi masing-masing.
Dalam Node.js, terdapat banyak modul terbina dalam - iaitu, modul yang disepadukan dari awal. Satu modul sedemikian ialah util, yang, pada pendapat saya, patut diberi perhatian lebih. Modul util terdiri daripada koleksi fungsi utiliti kecil yang boleh membantu dalam situasi tertentu. Dalam artikel ini, kita akan menyelidiki beberapa fungsi ini...
Panggil balik ialah salah satu cara terawal untuk mengendalikan kod tak segerak. Walau bagaimanapun, panggilan balik mempunyai beberapa had, seperti mencipta kod bersarang dan menyebabkan "neraka panggilan balik" yang terkenal. Kadangkala, membaca sekeping kod yang ditulis dalam gaya panggil balik boleh menjadi sangat menggembirakan. Menambah fungsi baharu boleh mencabar, kerana ia memerlukan pengenalan lapisan logik tambahan.
Dalam Node.js, terdapat fungsi utiliti untuk menukar fungsi tak segerak menggunakan gaya panggil balik kepada Promises. Fungsi ini berguna apabila anda ingin beralih kepada pendekatan berasaskan Janji dan kemudian menggabungkannya dengan async/menunggu untuk menjadikan kod anda lebih ringkas dan lebih mudah untuk diikuti.
const util = require('node:util'); const fs = require('node:fs'); const stat = util.promisify(fs.stat); async function callStat() { const stats = await stat('.'); console.log(`This directory is owned by ${stats.uid}`); } callStat();
Sebaliknya, kami mempunyai util.callbackify untuk menukar kembali fungsi berasaskan Promise kepada panggilan balik.
const util = require('node:util'); async function fn() { return 'hello world'; } const callbackFunction = util.callbackify(fn); callbackFunction((err, ret) => { if (err) throw err; console.log(ret); });
Jika anda kerap menggunakan perpustakaan, anda mungkin perasan mesej konsol yang menunjukkan bahawa sesuatu fungsi telah ditamatkan.
oldFunction() is deprecated. Use newFunction() instead.
Ini ialah pemberitahuan bahawa OldFunction menghampiri penghujung kitaran hayat sokongannya dan mungkin dialih keluar pada masa hadapan. Ia adalah pendekatan biasa untuk mengingatkan pembangun bahawa fungsi menghampiri "persaraan" dan sebaliknya menggunakan fungsi alternatif.
Dalam Node.js, terdapat cara mudah untuk memaparkan pemberitahuan ini jika anda perlu memberi amaran kepada orang lain bahawa fungsi hampir tamat hayatnya.
const util = require('util'); function oldFunction() { console.log('This function is deprecated!'); } const deprecatedFunction = util.deprecate(oldFunction, 'oldFunction() is deprecated. Use newFunction() instead.');
Hanya "bungkus" fungsi lama di dalam util.deprecate. Setiap kali OldFunction dipanggil, mesej amaran akan muncul dalam konsol.
Dari ES6 dan seterusnya, kami mempunyai fungsi tambahan untuk menyemak jenis data: boolean, tatasusunan, objek, dll.
Modul util mempunyai sifat jenis yang memanjangkan keupayaan untuk menyemak jenis data.
Contohnya:
console.log(util.types.isPromise(Promise.resolve())); // true console.log(util.types.isRegExp(/abc/)); // true console.log(util.types.isDate(new Date())); // true
Senarai komprehensif tersedia di util.types | Dokumentasi Node.js.
isDeepStrictEqual ialah kaedah paling berkesan untuk membandingkan dua objek dan menentukan sama ada ia sama.
const util = require('util'); const obj1 = { a: 1, b: { c: 2 } }; const obj2 = { a: 1, b: { c: 2 } }; console.log(util.isDeepStrictEqual(obj1, obj2)); // true
Selain fungsi ini, modul util menyediakan banyak fungsi utiliti lain, seperti util.styleText untuk memformat output teks dalam konsol dan util.parseEnv untuk menghuraikan kandungan pembolehubah persekitaran dalam fail .env.
Untuk maklumat lanjut, rujuk:
Atas ialah kandungan terperinci Beberapa Fungsi Berguna dalam Modul Util Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!