Módulo os de Node.js
De Node.jsosEl módulo os es un módulo central integrado que proporciona métodos y propiedades útiles relacionados con el sistema operativo. A través de este módulo, podemos obtener diversa información sobre el sistema operativo en el que se ejecuta Node.js, como la arquitectura de la CPU, el uso de memoria, las interfaces de red, etc.
¿Por qué necesitamos el módulo os?
Al desarrollar aplicaciones, a veces necesitamos ejecutar diferentes operaciones según el entorno del sistema operativo, o necesitamos monitorear el uso de los recursos del sistema.osEl módulo os nos proporciona esta capacidad, permitiéndonos obtener fácilmente esta información del sistema.
¿Cómo usar el módulo os?
Para usarosel módulo, primero debemos importarlo:
Introducción a los métodos comunes
1. Obtener información del sistema operativo
Ejemplo
console.log(os.type()); // Devuelve el nombre del sistema operativo, como 'Linux', 'Darwin', 'Windows_NT'
console.log(os.arch()); // Devuelve la arquitectura de la CPU, como 'x64', 'arm'
console.log(os.release()); // Devuelve la versión del sistema operativo
2. Obtener información de la memoria
Ejemplo
console.log(os.freemem()); // Devuelve la memoria disponible del sistema (en bytes)
// Convertir a MB para mostrar
console.log(`Memoria total: ${os.totalmem() / 1024 / 1024} MB`);
console.log(`Memoria disponible: ${os.freemem() / 1024 / 1024} MB`);
3. Obtener información de la CPU
Ejemplo
console.log(os.loadavg()); // Devuelve la carga promedio de 1, 5 y 15 minutos (solo Linux/Unix)
// Obtener el número de núcleos de la CPU
console.log(`Núcleos de la CPU: ${os.cpus().length}`);
4. Obtener información de las interfaces de red
Ejemplo
5. Obtener información relacionada con el usuario
Ejemplo
console.log(os.userInfo()); // Devuelve la información del usuario actual
console.log(os.hostname()); // Devuelve el nombre de host del sistema operativo
Ejemplos de aplicación práctica
Ejemplo 1: Herramienta de monitoreo del sistema
Ejemplo
function systemMonitor() {
console.log('=== Monitoreo del sistema ===');
console.log(`Sistema operativo: ${os.type()} ${os.release()}`);
console.log(`Arquitectura de la CPU: ${os.arch()}`);
console.log(`Núcleos de la CPU: ${os.cpus().length}`);
console.log(`Memoria total: ${(os.totalmem() / 1024 / 1024).toFixed(2)} MB`);
console.log(`Memoria disponible: ${(os.freemem() / 1024 / 1024).toFixed(2)} MB`);
console.log(`Tiempo de actividad del sistema: ${(os.uptime() / 60 / 60).toFixed(2)}horas`);
}
systemMonitor();
Ejemplo 2: Obtener la dirección IP de la red
Ejemplo
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(`Dirección IP local: ${getLocalIP()}`);
Notas
osLa información proporcionada por el módulo os es de solo lectura y no se puede utilizar para modificar la configuración del sistema.- La información devuelta puede variar entre diferentes sistemas operativos, especialmente entre Windows y sistemas tipo Unix.
- Algunos métodos (como
loadavg()) pueden no estar disponibles en Windows o devolver valores diferentes. - La información de memoria se devuelve en bytes y, por lo general, es necesario convertirla a unidades más legibles (como MB o GB).
Métodos
| Método | Descripción | Ejemplo |
|---|---|---|
os.arch() | Devuelve la arquitectura de la CPU del sistema operativo. | console.log(os.arch()); // 输出:'x64' |
os.constants | Devuelve un objeto con constantes específicas del sistema operativo (como códigos de error, señales, etc.). | console.log(os.constants.signals); |
os.cpus() | Devuelve una matriz de objetos, cada uno con información del núcleo de la CPU, como modelo, velocidad, uso, etc. | console.log(os.cpus()); |
os.endianness() | Devuelve el orden de bytes de la CPU (BEindica orden de bytes big-endian,LEindica orden de bytes little-endian). | console.log(os.endianness()); // 输出:'LE' |
os.freemem() | Devuelve la cantidad de memoria libre del sistema (en bytes), útil para monitorear los recursos del sistema. | console.log(os.freemem()); |
os.homedir() | Devuelve la ruta del directorio principal del usuario actual. | console.log(os.homedir()); |
os.hostname() | Devuelve el nombre de host. | console.log(os.hostname()); |
os.loadavg() | Devuelve una matriz con la carga promedio de 1, 5 y 15 minutos, solo válido en sistemas Unix. | console.log(os.loadavg()); |
os.networkInterfaces() | Devuelve un objeto con la información de direcciones de cada interfaz de red, comoIP 地址、MAC 地址。 | console.log(os.networkInterfaces()); |
os.platform() | Devuelve la plataforma del sistema operativo, como'darwin'、'win32'、'linux'etc. | console.log(os.platform()); |
os.release() | Devuelve la versión de distribución del sistema operativo. | console.log(os.release()); |
os.tmpdir() | Devuelve la ruta del directorio temporal predeterminado del sistema operativo. | console.log(os.tmpdir()); |
os.totalmem() | Devuelve la cantidad total de memoria del sistema (en bytes). | console.log(os.totalmem()); |
os.type() | Devuelve el nombre del sistema operativo, como'Linux'、'Darwin'(macOS)、'Windows_NT'etc. | console.log(os.type()); |
os.uptime() | Devuelve el tiempo de actividad del sistema operativo, en segundos. | console.log(os.uptime()); |
os.userInfo([options]) | Devuelve información detallada del usuario actual, como nombre de usuario, directorio principal, UID, GID, etc. Admite la configuración del objeto options, donde se puede establecer la codificación de caracteres (por defecto es'utf8')。 | console.log(os.userInfo()); |
Propiedades
| Propiedad | Descripción | Ejemplo |
|---|---|---|
os.EOL | Devuelve el identificador de fin de línea del sistema operativo actual (\no\r\n), útil para manejar la lectura y escritura de archivos multiplataforma. | console.log(os.EOL); // Windows 输出:'\r\n',Linux 输出:'\n' |
Ejemplo
Cree un archivo main.js, el código es el siguiente:
Ejemplo
// Obtener la arquitectura del sistema
console.log('Arquitectura del sistema:', os.arch());
// Obtener información de la CPU
console.log('Información de la CPU:', os.cpus());
// Obtener memoria libre
console.log('Memoria libre:', os.freemem());
// Obtener memoria total
console.log('Memoria total:', os.totalmem());
// Obtener el directorio principal
console.log('Directorio principal:', os.homedir());
// Obtener la plataforma del sistema
console.log('Plataforma del sistema:', os.platform());
// Obtener el nombre del sistema
console.log('Nombre del sistema:', os.type());
// Obtener la carga promedio (solo para sistemas Unix)
console.log('Carga promedio:', os.loadavg());
// Obtener información de las interfaces de red
console.log('Información de las interfaces de red:', os.networkInterfaces());
El resultado de la ejecución del código es similar al siguiente:
系统架构: arm64
CPU 信息: [
{
model: 'Apple M1',
speed: 24,
times: { user: 18515240, nice: 0, sys: 9460280, idle: 38401220, irq: 0 }
}
...
]
空闲内存: 167411712
总内存: 8589934592
主目录: /Users/EJEMPLO
系统平台: darwin
系统名称: Darwin
平均负载: [ 11.4658203125, 4.49560546875, 3.35791015625 ]
网络接口信息: {
...
Otras extensiones
Módulos integrados de Node.js