Node.js Advanced Topics
os module is a very nifty little module that allows us to get information about the OS.
const os = require('node:os');
console.log("Architecture:", os.arch(), "\n")
console.log("CPUs:", os.cpus(), "\n")
console.log("Network interfaces:", os.networkInterfaces(), "\n") console.log("Platform:", os.platform(), "\n")
console.log("Release number:", os.release(), "\n")
console.log("User info:", os.userInfo(), "\n")
os.arch() returns the operating system CPU architecture.
The OS module is rarely used, but now you know that it’s available if you need it.
The process object is a global that allows us to control the current process. It also has methods that can provide useful information about the process. Being an instance of the
EventEmitter class, it has a few important events that we should know about.
process.stdinis a readable stream. We use it to read data from user input.
process.stdoutis a writable stream. It is written to asynchronously, making it non-blocking.
console.infouse this stream.
process.stderris also a writable stream. It is written to synchronously and, hence, is blocking.
console.erroruse this stream.
You can read up on more methods in the official documentation.
Understanding the workings of the net module in Node.js
One of the most common transport layer protocols is TCP(Transmission Control Protocol). It provides a reliable way of sending packets in an ordered and error-checked stream. TCP is connection-oriented, which means that a connection must be established between the client and the server before data can be sent.
Alongside TCP, UDP is the other most common communication protocol. It provides a simple and lightweight connectionless communication model. Being connectionless, a very minimal amount of protocol mechanisms come into play when sending packets. While checksums are still used for data integrity, UDP is favored in real-time applications, as it avoids the overhead of setting up a connection, error-checking, and retransmission delays.