The Node os module
The os module of Node.js provides useful functions to interact with underlying system
This module provides many functions that you can use to retrieve information from the underlying operating system and the computer the program runs on, and interact with it.
const os = require('os')
There are a few useful properties that tell us some key things related to handling files:
os.EOL gives the line delimiter sequence. It’s \n on Linux and macOS, and \r\n on Windows.
When I say Linux and macOS I mean POSIX platforms. For simplicity I exclude other less popular operating systems Node can run on.
os.constants.signals tells us all the constants related to handling process signals, like SIGHUP, SIGKILL and so on.
os.constants.errno sets the constants for error reporting, like EADDRINUSE, EOVERFLOW and more.
You can read them all on https://nodejs.org/api/os.html#os_signal_constants.
Let’s now see the main methods that os provides:
- os.arch()
- os.cpus()
- os.endianness()
- os.freemem()
- os.homedir()
- os.hostname()
- os.loadavg()
- os.networkInterfaces()
- os.platform()
- os.release()
- os.tmpdir()
- os.totalmem()
- os.type()
- os.uptime()
- os.userInfo()
os.arch()
Return the string that identifies the underlying architecture, like arm, x64, arm64.
os.cpus()
Return information on the CPUs available on your system.
Example:
[ { model: 'Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz',
speed: 2400,
times:
{ user: 281685380,
nice: 0,
sys: 187986530,
idle: 685833750,
irq: 0 } },
{ model: 'Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz',
speed: 2400,
times:
{ user: 282348700,
nice: 0,
sys: 161800480,
idle: 703509470,
irq: 0 } } ]
os.endianness()
Return BE or LE depending if Node was compiled with Big Endian or Little Endian.
os.freemem()
Return the number of bytes that represent the free memory in the system.
os.homedir()
Return the path to the home directory of the current user.
Example:
'/Users/flavio'
os.hostname()
Return the hostname.
os.loadavg()
Return the calculation made by the operating system on the load average.
It only returns a meaningful value on Linux and macOS.
Example:
[ 3.68798828125, 4.00244140625, 11.1181640625 ]
os.networkInterfaces()
Returns the details of the network interfaces available on your system.
Example:
{ lo0:
[ { address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: 'fe:82:00:00:00:00',
internal: true },
{ address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: 'fe:82:00:00:00:00',
scopeid: 0,
internal: true },
{ address: 'fe80::1',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: 'fe:82:00:00:00:00',
scopeid: 1,
internal: true } ],
en1:
[ { address: 'fe82::9b:8282:d7e6:496e',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '06:00:00:02:0e:00',
scopeid: 5,
internal: false },
{ address: '192.168.1.38',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '06:00:00:02:0e:00',
internal: false } ],
utun0:
[ { address: 'fe80::2513:72bc:f405:61d0',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: 'fe:80:00:20:00:00',
scopeid: 8,
internal: false } ] }
os.platform()
Return the platform that Node was compiled for:
darwinfreebsdlinuxopenbsdwin32- …more
os.release()
Returns a string that identifies the operating system release number
os.tmpdir()
Returns the path to the assigned temp folder.
os.totalmem()
Returns the number of bytes that represent the total memory available in the system.
os.type()
Identifies the operating system:
LinuxDarwinon macOSWindows_NTon Windows
os.uptime()
Returns the number of seconds the computer has been running since it was last rebooted.
os.userInfo()
Returns information about the current user
download all my books for free
- javascript handbook
- typescript handbook
- css handbook
- node.js handbook
- astro handbook
- html handbook
- next.js pages router handbook
- alpine.js handbook
- htmx handbook
- react handbook
- sql handbook
- git cheat sheet
- laravel handbook
- express handbook
- swift handbook
- go handbook
- php handbook
- python handbook
- cli handbook
- c handbook
subscribe to my newsletter to get them
Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing flavio@flaviocopes.com. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.