Rumah  >  Artikel  >  hujung hadapan web  >  Sistem Modul Sembang Pembelajaran Nod

Sistem Modul Sembang Pembelajaran Nod

青灯夜游
青灯夜游ke hadapan
2023-01-30 20:10:222314semak imbas

Artikel ini akan membincangkan tentang sistem modul dalam Node.js, termasuk modul acara, modul util, modul fs, modul OS, modul Path, dll. Saya harap ia akan membantu anda!

Sistem Modul Sembang Pembelajaran Nod

Sistem Modul

Rujukan: Sistem Modul Node.js

Untuk membolehkan fail Node.js memanggil antara satu sama lain, Node.js menyediakan sistem modul ringkas.
Modul ialah komponen asas aplikasi Node.js, dan fail serta modul mempunyai surat-menyurat satu dengan satu.
Dalam erti kata lain, fail Node.js ialah modul, yang mungkin kod JavaScript, JSON atau sambungan C/C++ yang disusun.

Terdapat 4 jenis modul (modul asli dan 3 jenis modul fail) dalam Node.js
Contoh: var http = require("http");

Node.js datang dengannya Modul yang dipanggil http, kami memintanya daripada kod kami dan memberikan nilai pulangan kepada pembolehubah tempatan.
Ini menjadikan pembolehubah tempatan kami menjadi objek dengan semua kaedah awam yang disediakan oleh modul http. [Cadangan tutorial berkaitan: tutorial video nodejs]

Muat modul:

  • Muat daripada cache modul fail
  • Dari Modul asli memuatkan
  • Memuatkan daripada fail
    • memerlukan kaedah menerima parameter berikut:
      • http, fs, laluan, peristiwa, kegunaan, dsb., modul asli.
      • ./mod atau.../mod, modul fail dengan laluan relatif.
      • /pathtomodule/mod, modul fail dengan laluan mutlak.
      • mod, modul fail modul bukan asli.

Antara muka modul

  • exports Objek ialah antara muka yang didedahkan oleh modul
  • require Objek digunakan untuk mendapatkan antara muka modul dari luar, iaitu objek eksport modul yang diperolehi.
//例子
//hello.js
exports.world = function() {       //相当于给function()函数取了个别名world()
    console.log('Hello World');
  }

//main.js
var hello = require('./hello');
hello.world();  //访问 hello.js 的 world 函数

//结果
PS E:\learn> node main.js
Hello World
  • Hanya ingin merangkum objek ke dalam modul: module.exports = function() {...}
    Satu-satunya perubahan dalam antara muka modul ialah menggunakan module.exports = Hello dan bukannya eksport. dunia = fungsi (){}. Apabila modul dirujuk secara luaran, objek antara mukanya ialah objek Hello itu sendiri untuk menjadi output, bukan eksport asal.

Penggunaan eksport dan modul.eksport
Jika anda ingin mendedahkan sifat atau kaedah kepada dunia luar, hanya gunakan eksport Untuk mendedahkan objek (serupa ke kelas, termasuk Banyak sifat dan kaedah), hanya gunakan module.exports.

//hello.js 
function Hello() { 
    var name; 
    this.setName = function(thyName) { 
        name = thyName; 
    }; 
    this.sayHello = function() { 
        console.log('Hello ' + name); 
    }; 
}; 
module.exports = Hello;   

//main.js 
var Hello = require('./hello'); 
hello = new Hello(); 
hello.setName('BYVoid'); 
hello.sayHello();

//结果
PS E:\learn> node main.js
Hello BYVoid

modul acara

Rujukan: Node.js EventEmitter

Modul peristiwa hanya menyediakan satu objek: peristiwa.EventEmitter. Teras EventEmitter ialah enkapsulasi pencetus peristiwa dan fungsi pendengar peristiwa.

  • events ialah modul, gunakan require("events"); untuk mengakses modul.
  • EventEmitter adalah bersamaan dengan satu-satunya kelas dalam modul events Terdapat berbilang atribut di bawah kelas ini
    • addListener(event, listener) menambah pendengar pada tatasusunan pendengar untuk acara yang ditentukan. ekor.
    • on(event, listener) Fungsi on mendaftarkan pendengar untuk acara yang ditentukan dan menerima acara rentetan dan fungsi panggil balik.
    • once(event, listener) Daftar pendengar sekali untuk acara yang ditentukan, iaitu pendengar hanya akan dicetuskan paling banyak sekali dan pendengar akan dikeluarkan serta-merta selepas mencetuskan
    • removeListener(event, listener)Alih keluar acara tertentu daripada acara yang ditentukan Pendengar, yang mesti menjadi pendengar berdaftar untuk acara tersebut. Ia menerima dua parameter, yang pertama ialah nama acara, yang kedua ialah nama fungsi panggil balik
    • removeAllListeners([event]) Mengalih keluar semua pendengar untuk semua acara, jika acara ditentukan, mengalih keluar semua pendengar untuk peranti acara yang ditentukan.
    • setMaxListeners(n) Secara lalai, EventEmitters akan mengeluarkan mesej amaran jika anda menambah lebih daripada 10 pendengar. Fungsi setMaxListeners digunakan untuk menukar bilangan had lalai pendengar.
    • listeners(event) Mengembalikan susunan pendengar untuk acara yang ditentukan.
    • emit(event, [arg1], [arg2], [...]) Laksanakan setiap pendengar mengikut susunan pendengar Jika acara itu mempunyai pendengar berdaftar, ia akan kembali benar, jika tidak ia akan kembali palsu.
    • listenerCount(emitter, event) Mengembalikan bilangan pendengar untuk acara yang ditentukan.
//例子
//event.js 文件
var events = require('events');            // 引入 events 模块
var emitter = new events.EventEmitter();   // 创建 eventEmitter 对象
//为事件someEvent注册两个监视器
emitter.on('someEvent', function(arg1, arg2) { 
    console.log('listener1', arg1, arg2); 
}); 
emitter.on('someEvent', function(arg1, arg2) { 
    console.log('listener2', arg1, arg2); 
}); 
//按顺序执行someEvent的每个监视器
emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');  // 'arg1 参数', 'arg2 参数'为参数arg1,arg2的值
//结果
$ node event.js 
listener1 arg1 参数 arg2 参数
listener2 arg1 参数 arg2 参数

util modul

Rujukan:
tapak web rasmi alatan utiliti
alat biasa Node.js

util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 过于精简的不足。

util.callbackify(original)
将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数

  • 参数:original 为 async 异步函数。
  • 返回值:返回传统回调函数(或者一个返回值为 Promise 的函数)
    • 在返回的回调函数中,第一个参数为拒绝的原因(如果 Promise 解决,则为 null),第二个参数则是解决的值。
//例子
const util = require('util');

async function fn() {
  return 'hello world';
}
const callbackFunction = util.callbackify(fn);

callbackFunction((err, ret) => {
  if (err) throw err;
  console.log(ret);
});

//结果
hello world

util.inherits(constructor, superConstructor) 是一个实现对象间原型继承的函数。

//例子
var util = require('util'); 
//Base构造函数内三个属性
function Base() {    
    this.name = 'base'; 
    this.base = 1991; 
    this.sayHello = function() { 
    console.log('Hello ' + this.name); 
    }; 
} 

//原型中定义的一个函数
Base.prototype.showName = function() { 
    console.log(this.name);
}; 

//Sub构造函数内一个属性
function Sub() { 
    this.name = 'sub'; 
} 

util.inherits(Sub, Base);  //Sub从Base继承
var objBase = new Base(); 
objBase.showName(); 
objBase.sayHello(); 
console.log(objBase); 

var objSub = new Sub(); 
objSub.showName(); 
//objSub.sayHello(); 
console.log(objSub); 

//结果
base 
Hello base 
{ name: 'base', base: 1991, sayHello: [Function] } 
sub 
{ name: 'sub' }
//Base 有 name , base , sayHello() , showName()
//Sub  有 name(自己定义的,不是继承的) , showName() 从Base继承的
  • util.inspect(object,[showHidden],[depth],[colors]) 是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象。
    • 它至少接受一个参数 object,即要转换的对象。
    • showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。
    • depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多 少。如果不指定depth,默认会递归 2 层,指定为 null 表示将不限递归层数完整遍历对象。
    • 如果 colors 值为 true,输出格式将会以 ANSI 颜色编码,通常用于在终端显示更漂亮 的效果。
var util = require('util'); 
function Person() { 
    this.name = 'byvoid'; 
    this.toString = function() { 
    return this.name; 
    }; 
} 
var obj = new Person(); 
console.log(obj);
console.log(util.inspect(obj)); 
console.log(util.inspect(obj, true));

Sistem Modul Sembang Pembelajaran Nod

fs 模块

参考资料:Node.js 文件系统
Node.js 文件系统模块 官网
fs.open(path, flags[, mode], callback) 在异步模式下打开文件

  • 参数:

    • path - 文件的路径。
    • flags - 文件打开的行为。具体值详见下文。
    • mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。
    • callback - 回调函数,带有两个参数如:callback(err, fd)

    r 以读取模式打开文件。如果文件不存在抛出异常。
    r+ 以读写模式打开文件。如果文件不存在抛出异常。
    rs 以同步的方式读取文件。
    rs+ 以同步的方式读取和写入文件。
    w 以写入模式打开文件,如果文件不存在则创建。
    wx 类似 ‘w’,但是如果文件路径存在,则文件写入失败。
    w+ 以读写模式打开文件,如果文件不存在则创建。
    wx+ 类似 ‘w+’, 但是如果文件路径存在,则文件读写失败。
    a 以追加模式打开文件,如果文件不存在则创建。
    ax 类似 ‘a’, 但是如果文件路径存在,则文件追加失败。
    a+ 以读取追加模式打开文件,如果文件不存在则创建。
    ax+ 类似 ‘a+’, 但是如果文件路径存在,则文件读取追加失败。

fs.stat(path, callback) 通过异步模式获取文件信息

  • 参数:
    • path - 文件路径。
    • callback - 回调函数,带有两个参数如:callback(err, stats), stats 是 fs.Stats 对象。

fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性

stats.isFile() 如果是文件返回 true,否则返回 false。
stats.isDirectory() 如果是目录返回 true,否则返回 false。
stats.isBlockDevice() 如果是块设备返回 true,否则返回 false。
stats.isCharacterDevice() 如果是字符设备返回 true,否则返回 false。
stats.isSymbolicLink() 如果是软链接返回 true,否则返回 false。
stats.isFIFO() 如果是FIFO,返回true,否则返回 false。FIFO是UNIX中的一种特殊类型的命令管道。
stats.isSocket() 如果是 Socket 返回 true,否则返回 false。

fs.writeFile(file, data[, options], callback) 异步模式下写入文件
writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容。

  • Parameter:
    • fail - nama fail atau deskriptor fail.
    • data - Data yang akan ditulis pada fail, yang boleh menjadi objek String atau Buffer.
    • pilihan - Parameter ini ialah objek yang mengandungi {pengekodan, mod, bendera}. Pengekodan lalai ialah utf8, mod ialah 0666, bendera ialah 'w'
    • panggilan balik - fungsi panggil balik, fungsi panggil balik hanya mengandungi parameter maklumat ralat (err) dan mengembalikan

Baca fail dalam mod tak segerak Kaedah ini menggunakan deskriptor fail untuk membaca fail. fs.read(fd, buffer, offset, length, position, callback)

    Parameter:
    • fd - deskriptor fail dikembalikan oleh kaedah fs.open().
    • penampan - penimbal tempat data ditulis.
    • mengimbang - Mengimbang menulis untuk menulis penimbal.
    • panjang - Bilangan bait untuk dibaca daripada fail.
    • kedudukan - kedudukan permulaan bacaan fail Jika nilai kedudukan adalah batal, ia akan dibaca dari kedudukan penuding fail semasa.
    • panggilan balik - fungsi panggil balik dengan tiga parameter err, bytesRead, dan buffer err ialah mesej ralat, bytesRead mewakili bilangan bait yang dibaca dan penimbal ialah objek penimbal.

Tutup fail dalam mod tak segerak Kaedah ini menggunakan deskriptor fail untuk membaca fail. fs.close(fd, callback)

    Parameter:
    • fd - deskriptor fail dikembalikan oleh kaedah fs.open().
    • panggilan balik - fungsi panggil balik, tiada parameter.

Minta fail dalam mod tak segerak Kaedah ini menggunakan deskriptor fail untuk membaca fail. fs.ftruncate(fd, len, callback)

    Parameter:
    • fd - deskriptor fail dikembalikan oleh kaedah fs.open().
    • len - panjang pemintasan kandungan fail.
    • panggilan balik - fungsi panggil balik, tiada parameter.

Format sintaks untuk memadamkan fail: fs.unlink(path, callback)

    Parameter:
    • laluan - laluan fail.
    • panggilan balik - fungsi panggil balik, tiada parameter.

Cipta direktori fs.mkdir(path[, options], callback)

    Parameter:
    • laluan - laluan fail
    • parameter pilihan boleh menjadi Ya
      • rekursif - Sama ada untuk mencipta direktori secara rekursif, lalai adalah palsu.
      • mod - Tetapkan kebenaran direktori, lalai ialah 0777.
    • panggilan balik - fungsi panggil balik, tiada parameter.

Baca direktori fs.readdir(path, callback)

    Parameter:
    • laluan - laluan fail
    • panggilan balik - Panggilan balik fungsi, fungsi panggil balik mengambil dua parameter err, fail, err ialah mesej ralat, fail ialah senarai tatasusunan fail dalam direktori

Padam direktori fs.rmdir(path, callback)

    Parameter:
    • laluan - laluan fail
    • panggilan balik - fungsi panggil balik, tiada parameter.

Modul OS

Rujukan:

Modul OS Node.js Atribut:
Pemalar yang mentakrifkan aksara akhir baris sistem pengendalian. os.EOL Kaedah:

Mengembalikan folder sementara lalai sistem pengendalian os.tmpdir()
Mengembalikan endianness CPU, mungkin "BE" atau "LE". os.endianness()
Mengembalikan nama hos sistem pengendalian. os.hostname()
Mengembalikan nama sistem pengendalian os.type()
Mengembalikan nama sistem pengendalian yang disusun os.platform()
Mengembalikan seni bina CPU sistem pengendalian Nilai yang mungkin adalah "x64", "arm" dan ". ia32" . os.arch()
Mengembalikan versi keluaran sistem pengendalian. os.release()
Mengembalikan masa sistem pengendalian telah berjalan, dalam beberapa saat. os.uptime()
Mengembalikan tatasusunan yang mengandungi purata beban 1, 5 dan 15 minit. os.loadavg()
Mengembalikan jumlah jumlah memori sistem dalam bait. os.totalmem()
Mengembalikan jumlah memori percuma dalam sistem pengendalian, dalam bait. os.freemem()
Mengembalikan tatasusunan objek yang mengandungi maklumat tentang setiap CPU/teras yang dipasang: model, kelajuan (dalam MHz), masa (satu yang mengandungi pengguna, nice, sys, terbiar dan milisaat irq objek nombor terpakai CPU/teras ). os.cpus()
Dapatkan senarai antara muka rangkaian. os.networkInterfaces()

Modul Laluan

Modul Laluan Node.js

Modul Bersih

Modul Node.js Net

Modul DNS

Modul DNS Node.js

Modul domain

Modul Domain Node.js

modul http

Rujukan: Modul Web Node, js

modul url

modul gulp

pembinaan persekitaran ES6

Modul pek web

Tutorial pengenalan pek web

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs !

Atas ialah kandungan terperinci Sistem Modul Sembang Pembelajaran Nod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam