Module os de Node.js

Java FileModules intégrés de Node.js


de Node.jsosLe module os est un module central intégré qui fournit des méthodes et des propriétés pratiques liées au système d'exploitation. Grâce à ce module, nous pouvons obtenir diverses informations sur le système d'exploitation sur lequel Node.js est actuellement exécuté, telles que l'architecture du CPU, l'utilisation de la mémoire, les interfaces réseau, etc.

Pourquoi avons-nous besoin du module os ?

Lors du développement d'applications, nous devons parfois effectuer différentes opérations en fonction de différents environnements de système d'exploitation, ou nous devons surveiller l'utilisation des ressources du système.osLe module os nous fournit cette capacité, nous permettant d'obtenir facilement ces informations système.


Comment utiliser le module os

Pour utiliserosle module, nous devons d'abord l'importer :

const os = require('os');

Introduction aux méthodes courantes

1. Obtenir des informations sur le système d'exploitation

Exemple

console.log(os.platform());  // Renvoie la plateforme du système d'exploitation, par ex. 'darwin', 'win32', 'linux'
console.log(os.type());      // Renvoie le nom du système d'exploitation, par ex. 'Linux', 'Darwin', 'Windows_NT'
console.log(os.arch());      // Renvoie l'architecture du processeur, par ex. 'x64', 'arm'
console.log(os.release());   // Renvoie la version du système d'exploitation

2. Obtenir des informations sur la mémoire

Exemple

console.log(os.totalmem());  // Renvoie la mémoire système totale (octets)
console.log(os.freemem());   // Renvoie la mémoire système disponible (octets)

// Convertir en MB pour l'affichage
console.log(`Mémoire totale: ${os.totalmem() / 1024 / 1024} MB`);
console.log(`Mémoire disponible: ${os.freemem() / 1024 / 1024} MB`);

3. Obtenir des informations sur le processeur

Exemple

console.log(os.cpus());      // Renvoie un tableau d'objets contenant des informations sur chaque processeur/cœur
console.log(os.loadavg());   // Renvoie la charge moyenne sur 1, 5 et 15 minutes (Linux/Unix uniquement)

// Obtenir le nombre de cœurs du processeur
console.log(`Nombre de cœurs du processeur: ${os.cpus().length}`);

4. Obtenir des informations sur les interfaces réseau

Exemple

console.log(os.networkInterfaces());  // Renvoie les informations sur les interfaces réseau

5. Obtenir des informations relatives à l'utilisateur

Exemple

console.log(os.homedir());   // Renvoie le répertoire personnel de l'utilisateur actuel
console.log(os.userInfo());  // Renvoie des informations sur l'utilisateur actuel
console.log(os.hostname());  // Renvoie le nom d'hôte du système d'exploitation

Exemples d’application pratique

Exemple 1 : outil de surveillance du système

Exemple

const os = require('os');

function systemMonitor() {
  console.log('=== Surveillance du système ===');
  console.log(`Système d'exploitation: ${os.type()} ${os.libérer()}`);
  console.log(`Architecture du processeur: ${os.arch()}`);
  console.log(`Nombre de cœurs du processeur: ${os.cpus().length}`);
  console.log(`Mémoire totale: ${(os.totalmem() / 1024 / 1024).toFixed(2)} MB`);
  console.log(`Mémoire disponible: ${(os.freemem() / 1024 / 1024).toFixed(2)} MB`);
  console.log(`Temps de fonctionnement du système: ${(os.uptime() / 60 / 60).toFixed(2)}heures`);
}

systemMonitor();

Exemple 2 : Obtenir l'adresse IP du réseau

Exemple

const os = require('os');

function getLocalIP() {
  const interfaces = os.networkInterfaces();
  for (const interfaceName in interfaces) {
    for (const iface of interfaces[interfaceName]) {
      if (iface.family === 'IPv4' && !iface.internal) {
        return iface.address;
      }
    }
  }
  return '127.0.0.1';
}

console.log(`Adresse IP locale: ${getLocalIP()}`);

Notes

  1. osLes informations fournies par le module os sont en lecture seule et ne peuvent pas être utilisées pour modifier la configuration du système.
  2. Les informations renvoyées par différents systèmes d'exploitation peuvent varier, en particulier entre Windows et les systèmes de type Unix.
  3. Certaines méthodes (telles queloadavg()) peuvent ne pas être disponibles sur Windows ou peuvent renvoyer des valeurs différentes.
  4. Les informations sur la mémoire sont renvoyées en octets et doivent généralement être converties en unités plus lisibles (telles que MB ou GB).

Méthodes

Les méthodes et propriétés courantes de os sont les suivantes :

MéthodeDescriptionExemple
os.arch()Renvoie l'architecture CPU du système d'exploitation.console.log(os.arch()); // 输出:'x64'
os.constantsRenvoie un objet contenant des constantes spécifiques au système d'exploitation (telles que les codes d'erreur, les signaux, etc.).console.log(os.constants.signals);
os.cpus()Renvoie un tableau d'objets, chacun contenant des informations sur un cœur de CPU, telles que le modèle, la vitesse, l'utilisation, etc.console.log(os.cpus());
os.endianness()Renvoie l'ordre des octets du CPU (BEsignifie un ordre des octets big-endian,LEsignifie un ordre des octets little-endian).console.log(os.endianness()); // 输出:'LE'
os.freemem()Renvoie la quantité de mémoire libre du système (en bytes), qui peut être utilisée pour surveiller les ressources système.console.log(os.freemem());
os.homedir()Renvoie le chemin du répertoire personnel de l'utilisateur actuel.console.log(os.homedir());
os.hostname()Renvoie le nom d'hôte.console.log(os.hostname());
os.loadavg()Renvoie un tableau contenant la charge moyenne pour 1, 5 et 15 minutes, valide uniquement sur les systèmes Unix.console.log(os.loadavg());
os.networkInterfaces()Renvoie un objet contenant des informations d'adresse pour chaque interface réseau, telles queIP 地址、MAC 地址。console.log(os.networkInterfaces());
os.platform()Renvoie la plateforme du système d'exploitation, telle que'darwin'、'win32'、'linux'etc.console.log(os.platform());
os.release()Renvoie la version de la distribution du système d'exploitation.console.log(os.release());
os.tmpdir()Renvoie le chemin du répertoire temporaire par défaut du système d'exploitation.console.log(os.tmpdir());
os.totalmem()Renvoie la mémoire système totale (en octets).console.log(os.totalmem());
os.type()Renvoie le nom du système d'exploitation, tel que'Linux'、'Darwin'(macOS)、'Windows_NT'etc.console.log(os.type());
os.uptime()Renvoie la durée de fonctionnement du système d'exploitation, en secondes.console.log(os.uptime());
os.userInfo([options])Renvoie des informations détaillées sur l'utilisateur actuel, telles que le nom d'utilisateur, le répertoire personnel, l'UID, le GID, etc. Prend en charge la configuration d'un objet d'options pour définir l'encodage des caractères (la valeur par défaut est'utf8')。console.log(os.userInfo());

Propriétés

PropriétéDescriptionExemple
os.EOLRenvoie le marqueur de fin de ligne du système d'exploitation actuel (\nou\r\n), pratique pour gérer la lecture et l'écriture de fichiers multiplateformes.console.log(os.EOL); // Windows 输出:'\r\n',Linux 输出:'\n'

Exemple

Créez un fichier main.js avec le code suivant :

Exemple

const os = require('os');

// Obtenir l'architecture système
console.log('Architecture système :', os.arch());

// Obtenir des informations sur le processeur
console.log('Informations sur le processeur :', os.cpus());

// Obtenir la mémoire libre
console.log('Mémoire libre :', os.freemem());

// Obtenir la mémoire totale
console.log('Mémoire totale :', os.totalmem());

// Obtenir le répertoire personnel
console.log('Répertoire personnel :', os.homedir());

// Obtenir la plateforme système
console.log('Plateforme système :', os.platform());

// Obtenir le nom du système
console.log('Nom du système :', os.type());

// Obtenir la charge moyenne (s'applique uniquement aux systèmes Unix)
console.log('Charge moyenne :', os.loadavg());

// Obtenir des informations sur les interfaces réseau
console.log('Informations sur les interfaces réseau :', os.networkInterfaces());

Le résultat de l'exécution du code est similaire à ce qui suit :

系统架构: arm64
CPU 信息: [
  {
    model: 'Apple M1',
    speed: 24,
    times: { user: 18515240, nice: 0, sys: 9460280, idle: 38401220, irq: 0 }
  }
...
]
空闲内存: 167411712
总内存: 8589934592
主目录: /Users/EXAMPLE
系统平台: darwin
系统名称: Darwin
平均负载: [ 11.4658203125, 4.49560546875, 3.35791015625 ]
网络接口信息: {
...

Node.js 工具模块Modules utilitaires Node.js

Java FileModules intégrés de Node.js

Autres extensions