Module os 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 :
Introduction aux méthodes courantes
1. Obtenir des informations sur le système d'exploitation
Exemple
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.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.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
5. Obtenir des informations relatives à l'utilisateur
Exemple
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
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
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
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.- Les informations renvoyées par différents systèmes d'exploitation peuvent varier, en particulier entre Windows et les systèmes de type Unix.
- Certaines méthodes (telles que
loadavg()) peuvent ne pas être disponibles sur Windows ou peuvent renvoyer des valeurs différentes. - 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
| Méthode | Description | Exemple |
|---|---|---|
os.arch() | Renvoie l'architecture CPU du système d'exploitation. | console.log(os.arch()); // 输出:'x64' |
os.constants | Renvoie 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é | Description | Exemple |
|---|---|---|
os.EOL | Renvoie 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
// 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 ]
网络接口信息: {
...
Autres extensions
Modules intégrés de Node.js