Node.js: Betriebssystemdienstprogramme im Node.js-Betriebssystemmodul

Dieses Tutorial führt Sie durch die Verwendung betriebssystembezogener Dienstprogramme im Node.js-Betriebssystemmodul. Das Betriebssystemmodul in Node.js bietet eine Vielzahl von Methoden, die hilfreich sind, um relevante Details zum nativen Betriebssystem abzurufen.

Wenn Sie Node.js-Anfänger sind, lesen Sie bitte unseren Einführungsartikel zu Node.js.

Node.js bietet betriebssystembezogene Dienstprogramme in os Modul. In diesem Artikel zeigen wir Ihnen die verschiedenen APIs, die von bereitgestellt werden os Modul. Wir zeigen jede API und ihre Ausgabe zusammen mit ihr. Lassen Sie uns zunächst eine js-Datei mit Namen erstellen: node_os_interface.js und fügen Sie die folgende Zeile hinzu:

var os = require('os');

Node.js OS-Modul-API

Im OS-Modul von Node.js sind 14 Methoden definiert. Dies sind die Methoden, die zum Lesen und Interagieren mit dem nativen Betriebssystem verwendet werden, um verschiedene Details wie Prozess, Speicher usw. abzurufen. Die Liste der Methoden, die Teil des Betriebssystemmoduls sind, lautet:

  • os.tmpdir()
  • os.endianness()
  • os.hostname()
  • os.type()
  • os.platform()
  • os.arch()
  • os.release()
  • os.uptime()
  • os.loadavg()
  • os.totalmem()
  • os.freemem()
  • os.cpus()
  • os.networkInterfaces()
  • os.EOL
  • In den folgenden Abschnitten werden die einzelnen Methoden im Node.js-OS-Modul anhand einfacher Beispiele erläutert.

    tmpdir()

    Beginnen wir nun mit der ersten API tmpdir() – Diese API druckt das temporäre Verzeichnis des Betriebssystems:

    console.log("OS Temp Dir: " + os.tmpdir());
    

    Die obigen Ausdrucke: OS Temp Dir: C:\Users\Mohamed\AppData\Local\Temp auf meinem System. Es wird für verschiedene Systeme unterschiedlich sein.

    Endianness()

    Diese API gibt aus, ob die CPU-Architektur Big Endian (BE) oder Little Endian (LE) ist.

    console.log("CPU is BigEndian(BE) or LittleEndian(LE): " + os.endianness());
    

    Ausgabe

    CPU is BigEndian(BE) or LittleEndian(LE): LE
    

    Hostname()

    Diese API gibt den Hostnamen des Betriebssystems aus.

    console.log("OS Hostname: " + os.hostname());
    

    Ausgabe

    OS Hostname: Sana-Laptop
    

    Typ()

    Diese API gibt den Typ des Betriebssystems aus.

    console.log("OS Type: " + os.type());
    

    Ausgabe

    OS Type: Windows_NT
    

    Plattform()

    Diese API gibt die Plattform des Betriebssystems aus.

    console.log("OS Platform: " + os.platform());
    

    Ausgabe

    OS Platform: win32
    

    Bogen()

    Diese API druckt die CPU-Architektur – egal ob 32-Bit-, 64-Bit- oder Arm-Architektur.

    console.log("OS CPU Architecture: " + os.arch());
    

    Ausgabe

    OS CPU Architecture: x64
    

    freigeben()

    Diese API gibt die Versionsnummer des Betriebssystems aus.

    console.log("OS Release: " + os.release());
    

    Ausgabe

    OS Release: 6.3.9600
    

    Betriebszeit()

    Diese API gibt die Betriebszeit der Maschine zurück, dh die Anzahl der Sekunden, die sie ausgeführt hat.

    console.log("OS Uptime (seconds): " + os.uptime());
    

    Ausgabe

    OS Uptime (seconds): 104535.1365887
    

    Loadavg()

    Diese API gibt den Auslastungsdurchschnitt der Maschine in den letzten 1, 5 und 15 Minuten zurück. Dieses Konzept ist für UNIX-Systeme relevant und gibt für Windows-Systeme 0,0,0 zurück.

    console.log("OS load average (Returns 0,0,0 in windows): " + os.loadavg());
    

    Ausgabe

    OS load average (Returns 0,0,0 in windows): 0,0,0
    

    totalmem()

    Diese API gibt den gesamten im System verfügbaren Speicher (RAM) zurück.

    console.log("Total RAM (mb): " + (os.totalmem()/1024)/1024);
    

    Ausgabe

    Total RAM (mb): 8084.2734375
    

    freemem()

    Diese API gibt den im System verfügbaren freien Speicher (RAM) zurück.

    console.log("Free RAM (mb): " + (os.freemem()/1024)/1024)
    

    Ausgabe

    Free RAM (mb): 2169.56640625
    

    cpus()

    Diese API gibt die verfügbaren CPUs und Informationen darüber zurück. Wir werden die Funktion JSON.stringify verwenden, um die JSON-Zeichenfolge hübsch zu drucken.

    var cpus = os.cpus();
    console.log("CPU Information: " + JSON.stringify(cpus, null, 2));
    

    Ausgabe

    CPU Information:
    [
      {
        "model": "Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz",
        "speed": 2594,
        "times": {
          "user": 2376265,
          "nice": 0,
          "sys": 2880406,
          "idle": 66987203,
          "irq": 239203
        }
      },
      {
        "model": "Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz",
        "speed": 2594,
        "times": {
          "user": 2378703,
          "nice": 0,
          "sys": 2435625,
          "idle": 67429250,
          "irq": 136937
        }
      },
      {
        "model": "Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz",
        "speed": 2594,
        "times": {
          "user": 2435640,
          "nice": 0,
          "sys": 2670859,
          "idle": 67137046,
          "irq": 25000
        }
      },
      {
        "model": "Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz",
        "speed": 2594,
        "times": {
          "user": 2503703,
          "nice": 0,
          "sys": 1726234,
          "idle": 68013625,
          "irq": 24640
        }
      }
    ]
    

    Die oben genannten Informationen enthalten die CPU-Geschwindigkeit und die Zeit, die die CPU für Benutzeroperationen, Systemoperationen und den Leerlauf jeder CPU aufgewendet hat.

    Netzwerk Schnittstellen()

    Diese API gibt die Netzwerkschnittstellen im System zurück, dh die Entitäten, die eine Schnittstelle zwischen dem Betriebssystem und dem Netzwerk bilden. Dies können physische Geräte und logische Einheiten für die Verbindung mit localhost sein.

    console.log("Network Interfaces: " + JSON.stringify(os.networkInterfaces(), null, 2));
    

    Ausgabe

    Network Interfaces:
    {
      "Wi-Fi": [
        {
          "address": "fe80::19c3:55f9:ecd:8a5a",
          "netmask": "ffff:ffff:ffff:ffff::",
          "family": "IPv6",
          "mac": "b0:10:41:68:31:53",
          "scopeid": 2,
          "internal": false
        },
        {
          "address": "192.168.1.4",
          "netmask": "255.255.255.0",
          "family": "IPv4",
          "mac": "b0:10:41:68:31:53",
          "internal": false
        }
      ],
      "Loopback Pseudo-Interface 1": [
        {
          "address": "::1",
          "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
          "family": "IPv6",
          "mac": "00:00:00:00:00:00",
          "scopeid": 0,
          "internal": true
        },
        {
          "address": "127.0.0.1",
          "netmask": "255.0.0.0",
          "family": "IPv4",
          "mac": "00:00:00:00:00:00",
          "internal": true
        }
      ],
      "Teredo Tunneling Pseudo-Interface": [
        {
          "address": "2001:0:9d38:6abd:2444:2b76:8a3f:ec06",
          "netmask": "ffff:ffff:ffff:ffff::",
          "family": "IPv6",
          "mac": "00:00:00:00:00:00",
          "scopeid": 0,
          "internal": false
        },
        {
          "address": "fe80::2444:2b76:8a3f:ec06",
          "netmask": "ffff:ffff:ffff:ffff::",
          "family": "IPv6",
          "mac": "00:00:00:00:00:00",
          "scopeid": 8,
          "internal": false
        }
      ]
    }
    

    Jede der oben genannten Netzwerkschnittstellen verfügt über jeweils einen Eintrag für IPv4 und IPv6.

    EOL

    Dies gibt den EOL-Marker für das Betriebssystem zurück. Unter Windows ist es so \n.

    console.log("EOL Marker for OS: " + os.EOL);
    

    Nachfolgend finden Sie das vollständige Programm:

    //file name: node_os_interface.js
    var os = require('os');
    
    console.log("OS Temp Dir: " + os.tmpdir());
    console.log("CPU is BigEndian(BE) or LittleEndian(LE): " + os.endianness());
    console.log("OS Hostname: " + os.hostname());
    console.log("OS Type: " + os.type());
    console.log("OS Platform: " + os.platform());
    console.log("OS CPU Architecture: " + os.arch());
    console.log("OS Release: " + os.release());
    console.log("OS Uptime (seconds): " + os.uptime());
    console.log("OS load average (Returns 0,0,0 in windows): " + os.loadavg());
    console.log("Total RAM (mb): " + (os.totalmem()/1024)/1024);
    console.log("Free RAM (mb): " + (os.freemem()/1024)/1024)
    var cpus = os.cpus();
    console.log("CPU Information: " + JSON.stringify(cpus, null, 2));
    console.log("Network Interfaces: " + JSON.stringify(os.networkInterfaces(), null, 2));
    console.log("EOL Marker for OS: " + os.EOL);
    

    Das Obige kann durch Ausführen des folgenden Befehls ausgeführt werden: node node_os_interface.js. Die Ausgabe ist unten angegeben:

    OS Temp Dir: C:\Users\Mohamed\AppData\Local\Temp
    CPU is BigEndian(BE) or LittleEndian(LE): LE
    OS Hostname: Sana-Laptop
    OS Type: Windows_NT
    OS Platform: win32
    OS CPU Architecture: x64
    OS Release: 6.3.9600
    OS Uptime (seconds): 145774.5905403
    OS load average (Returns 0,0,0 in windows): 0,0,0
    Total RAM (mb): 8084.2734375
    Free RAM (mb): 2064.69921875
    CPU Information:
    ... CPU Information already shown above ...
    Network Interfaces:
    ... Network interface information already shown above ...
    EOL Marker for OS:
    
    

    Ich hoffe, dieses Tutorial hat Ihnen anhand einfacher Beispiele geholfen, das Node.js-Betriebssystemmodul zu verstehen. In meinen nächsten Artikeln werde ich einige weitere Themen zum Node.js-Framework mit weiteren Beispielen behandeln.

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen