How Node.js Works?

James A. LotzJames A. Lotz
4 min read

As web developers, we typically discuss code that operates on the front end (in the browser) or the back end (in the server). JavaScript was previously limited to operating only within a browser, and its purpose was to enhance a webpage's interactivity. JavaScript could never be run on the server, but thanks to Node.js, we can now run it directly on a computer.

How computers understand code

We need to understand how computers interpret code before we can understand how node functions. Computers can only interpret binary code, or machine code, which consists of zeros and ones. Since programmers find it extremely difficult to read or write this, an easier language called Assembly language is built on top of it. To make assembly code understandable by the machine, it is assembled down to machine code.

However, it is still very difficult to read or write in this Assembly language. Thus, high level languages like C++ are built on top of that and are significantly abstracted from Assembly code, making them much simpler for programmers to comprehend. In the end, this C++ code is compiled to assembly code, which is subsequently put together to create machine code.

While computers cannot directly compile JavaScript into machine code, it is a language that is even more abstracted from it than C++ to facilitate programming. Thus, JavaScript cannot be executed directly on a computer.

The V8 engine

But it can run inside a browser. How does that work? Well running inside the browser is something called the V8 engine (not the ones in cars), and it was written in C++ by Google. The V8 engine compiles JavaScript into machine code at runtime.

So by passing JavaScript code into the V8 engine in the browser, the computer can understand JavaScript within the context of the browser. However, it cannot run JavaScript directly in the computer because there’s no V8 engine compiling it down to machine code.

Enter Node.js

This is where Node.js comes in. Node.js is a program also written in C++ which wraps the V8 engine inside of it, and since it is written in C++ it can run directly in your computer! But Node is more than a wrapper for the V8 engine. It hooks into the V8 engine’s other functionalities which allows it to do things like:

  1. Read and write files in a computer

  2. Connect to a database

  3. Act as server for content

These are types of things that you’d expect a server-side language to be able to do. However, now when we’re running JavaScript on a computer, we lose some of its features like access to the DOM (Document Object Model), so we can’t interact with HTML elements anymore. But we don’t really need that when we’re running JavaScript on a server and acting as the backend.

The role of Node.js

The role of node in a website is basically to run JavaScript on the back end or server side, which is then going to be handling requests coming in from a browser.

So for example a user might visit your website in a browser and that browser is going to make a request to the server. The node server is going to run some kind of JavaScript to react to the request and it might communicate maybe with a database. Then it’s going to formulate some kind of response and send it right back to the browser. Now that response could be an HTML page with dynamic data embedded inside it or maybe some image files, etc

Benefits of Node.js

  1. So Node is pretty much an alternative to other server-side languages like Python, Ruby and PHP. But there are some benefits to using Node

  2. First of all, if you’re already familiar with JS, then you don’t have to spend time learning another server-side language.

  3. This allows us to use JavaScript in the frontend and the backend, and to that end, we can also share code between the frontend and the backend

  4. It also has a massive community behind it and anytime you run into a problem you can find the solution pretty quickly

  5. There’s also a huge number of third-party packages and tools to help with web development (like Express)

Discover BizoneUs: Your Source for USA Contact Information

For in-depth access to extensive USA contact details, explore the BizoneUs directory. Offering a wide array of listings, this resource ensures you can find specific contacts across various industries and regions within the United States. Whether you’re searching for business contacts, customer service numbers, or professional connections, BizoneUs is a dependable platform to streamline your search. Utilize its user-friendly interface and vast database to access the most relevant and current contact information tailored to your needs. Efficiently uncover detailed American business contact information with the BizoneUs directory today

0
Subscribe to my newsletter

Read articles from James A. Lotz directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

James A. Lotz
James A. Lotz