A Quick Guide to Node.js in 2019

Introduction

What Is Node.js?

Node.js is both open source and free, and is used for a variety of purposes. To name a few, Node.js is very efficient for serving dynamic content. If you want a quick and efficient way to get a blog up and running, Node.js can simplify the process. Based on JavaScript, Node.js can be used by most web developers who wish to perform server-side operations without having to learn a completely new language. Node.js is also very memory efficient, handles all requests asynchronously, and the included package manager has access to the largest repository in the world.

Advantages

Node.js has several advantages, such as the following:

  • Natively supports asynchronous tasks. For example, when a user makes a request to a Node.js-written script, Node.js continues to be available for new requests while processing the current request.
  • Supports most Linux distributions and has a large number of pre-written packages available for you to use.
  • Has most of the basic functions you will need built-in. This includes the ability to edit, move or delete files; as well as interact with MySQL, MongoDB, and a plethora of other things without having to use the included package manager.
  • Uses the largest repository of packages in the world: npm.
  • Similar code syntax to JavaScript. Node.js is essentially server-side JS.

Disadvantages

Unfortunately, though, Node.js does have it's share of disadvantages:

  • As it is a relatively new language, compared to something like PHP, it's codebase is updated often. This means that calls or methods you use may not work in a previous or future version of Node.js.
  • Node.js may occasionally take longer to write code for, as it can not easily use other libraries. ImageMagick, for example, is a popular library used on PHP that is not supported with Node.js.
  • Unlike Java, exceptions are difficult to implement. This means that it is nearly impossible to find errors in your code if you have a JS file that is thousands of lines long.

Using Node.js

Prerequisites

  • Any modern version of Ubuntu, CentOS, or Debian installed. This article will only cover the installation process for CentOS.
  • A minimum of 256 MB of RAM. Note, this figure depends on the application that you'll be running.
  • For this tutorial, you'll also need a text editor, such as Vim or Nano.

Installing Node

Update your package manager:

yum update -y

Install Node.js:

yum install nodejs -y

If you are prompted to import a key, enter Y to continue.

Ensure the installation was successful:

node -v
npm -v

Basic File Type Conventions

All Node.js files must end with .js. For example, a simple quadratic solver can be called Quadratic.js. Having said that, you can call it whatever you'd like as long as the first requirement is met.

The API

Programming languages usually have an API available, and Node.js is no exception. If you are lost or need to find the syntax for a function (or method), check out the Node.js docs.

NOTE: As mentioned previously, Node.js has a code-base that is updated constantly and as such, functions here may no longer work in later versions.

Creating Your First Programs

Hello, World!

In this section, we'll be learning about the most basic program you can create. To begin, head to /~ or /root. Creating your first project is as simple as creating a JS file:

nano HelloWorld.js

Once you are inside your favourite text editor, enter the following:

// For reference, comments are made using '//' added before or after a line. Comments are ignored by the Node.js interpreter.
console.log("Hello, world!"); // console.log() simply outputs text to the terminal.

Exit and save.

Now, launch your program:

node HelloWorld.js

You will see the following output:

[root@test-server ~]# node HelloWorld.js
Hello, world!

Simple Math & Variables

In this section, we'll be learning how to perform basic mathematical operations. To begin, head to your /root directory again and create a file called MathTest.js:

nano MathTest.js 

Paste the following code into the file:

var a = 5; // Variables are declared using 'var variableName = value'. The value can be a string, integer, boolean value (ie. true/false) or an object. 
var b = 10;
var c = "Hello, world!";

console.log(c); // This line will output the contents of variable c.
console.log("a = " + a + ", b = " + b); // This line prints out the respective values for a & b.
console.log("a + b = " + (a + b)); // This line prints out the result of (a + b) or (5 + 10). The result should be 15.

Save and exit.

When you execute your MathTest.js program, you will see the following:

[root@test-server ~]# node MathTest.js
Hello, world!
a = 5, b = 10
a + b = 15

Starting Our First Webserver

In this section, we'll be learning how to start up a Node.js webserver. To begin, create a file called WebTest.js:

nano WebTest.js

Paste the following code:

 // This line includes the HTTP module. Having it included allows us to use it's methods and functions to start a working webserver.
var http = require("http");
var a = 5, b = 10; 

http.createServer(function (request, response) {
    // This will simply output "Request received!" to your terminal when you visit your page.
    console.log("Request received!");

    // This line tells your browser that it should be expecting HTML content to be returned.
    response.writeHead(200, {'Content-Type': 'text/html'}); 

    // The following line adds "Hello, world! a + b = 15" to the body. The <i></i> tags will italicize the text. 
    response.write("<i>Hello, world! a + b = " + (a + b) + "</i>"); 

    // Finally, we'll tell the browser that we're done sending data with 'response.end()' below.
    response.end(); 
}).listen(8080);

Once you've saved the file, run your new program:

[root@test-server ~]# node WebTest.js

Now, visit http://(YOUR_SERVER_IP):8080. Make sure to have your firewall configured correctly to allow the request.

You will see Request received! on your terminal and the following in your browser:

Hello, world! a + b = 15

NOTE: In order to close (shut down) WebTest.js, use the following key combination: CTRL + C.

Now that you understand some of the basics, the following section will introduce you to using 3rd party modules, installed via npm.

Installing a 3rd Party Module and Using It in a Program

In this section, we'll be extending our first "Hello, world!" program. To begin, we'll be installing a package called colo. This package allows us to use colours on the terminal.

To begin, we'll be using npm to install the package:

npm i colo  

For reference, you can remove the package with npm remove colo

Once the process completes, you will have access to the colo package. Now, once you've opened HelloWorld.js up, add the following line at the top:

var colour = require("colo");

Where you see console.log(...), encapsulate "Hello, world!" with brackets. At the start of the brackets, add colour.red.bold:

console.log(colour.red.bold("Hello, world!"));

Your final code will look like the following:

var colour = require("colo");
console.log(colour.red.bold("Hello, world!"));

Save, exit and run your program. The output will be exactly the same as before, except "Hello, world!" will now be red (and bold) in your terminal.

Final Remarks

Congratulations on completing all the basic programs. This should provide you with the knowledge to interpret (at least most) of the code used in other tutorials. Hopefully, you don't stop here — there are many other things that you can do with Node.js!

If you find that Node.js isn't the language for you, removing it is as simple as the following:

yum remove nodejs -y

A Quick Guide to Node.js in 2019

A Quick Guide to Node.js in 2019

Introduction What Is Node.js? Node.js is both open source and free, and is used for a variety of purposes. To name a few, Node.js is very efficient fo

Implementer en Meteor-applikation på Ubuntu

Implementer en Meteor-applikation på Ubuntu

Denne artikel vil guide dig gennem implementeringen af ​​din Meteor-app til en Vultr VPS, der kører Ubuntu 14.04. Det kan også fungere på andre Linux-distributioner (forsøg en

Konfigurer Sails.js til udvikling på CentOS 7

Konfigurer Sails.js til udvikling på CentOS 7

Bruger du et andet system? Introduktion Sails.js er en MVC-ramme for Node.js, der ligner Ruby on Rails. Det giver mulighed for at udvikle moderne applikationer ver

Sådan opsættes Node.js Persistent Applications på Ubuntu 16.04

Sådan opsættes Node.js Persistent Applications på Ubuntu 16.04

Node.js-applikationer er populære for deres evne til at skalere. At køre flere samtidige processer på flere servere giver lavere latenstid og større oppetid

Installation af Node.js fra kilden på Ubuntu 14.04

Installation af Node.js fra kilden på Ubuntu 14.04

Installer byggeværktøjer Der vil være behov for flere værktøjer. Kør følgende kommando: apt-get install make g++ libssl-dev git Download Node.js source It i

Sådan installeres GruntJS på Debian 9

Sådan installeres GruntJS på Debian 9

GruntJS er en JavaScript-opgaveløber skrevet oven på NodeJS. Det kan bruges til at automatisere gentagne opgaver til din applikation som minifikation, kompilering

Installer Node.JS via Node Version Manager på Ubuntu 14.04

Installer Node.JS via Node Version Manager på Ubuntu 14.04

Installer og administrer nemt enhver version af Node.JS ved hjælp af Node Version Manager (NVM). NVM ligner Rubys RVM, så du kan installere og skifte mellem

Sådan konfigureres PM2 på Ubuntu 16.04

Sådan konfigureres PM2 på Ubuntu 16.04

PM2 er en meget populær Node-procesmanager, der gør det nemt at køre NodeJS-applikationer. PM2 gør det nemt at genstarte apps, automatisk genstart nedbrud

Implementering af Javascript Unikernels til Vultr With Ops

Implementering af Javascript Unikernels til Vultr With Ops

Implementering af Javascript Unikernels til Vultr Unikernels er operativsystemer med enkelt applikation. I modsætning til generelle operativsystemer som Linux, unikernel

Opsætning af en Express.js-webserver på Ubuntu 16.04 LTS

Opsætning af en Express.js-webserver på Ubuntu 16.04 LTS

I denne vejledning vil vi installere en grundlæggende Express.js-webserver ved hjælp af Node.js, en Javascript-runtime baseret på Chromes V8-motor, på vores Vultr VP

Konfigurer Sails.js til udvikling på Ubuntu 14

Konfigurer Sails.js til udvikling på Ubuntu 14

Bruger du et andet system? Introduktion Sails.js er en MVC-ramme for Node.js, der ligner Ruby on Rails. Det giver mulighed for at udvikle moderne applikationer ver

Installation af JXCore

Installation af JXCore

JXCore er en fork af Node.js, der introducerer bedre ydeevne og multi-threading. På trods af at det er i beta, er JXCore hurtig og stabil nok til mennesker

Opret en Hapi.js-webapplikation ved hjælp af Node.js på Ubuntu 16.04

Opret en Hapi.js-webapplikation ved hjælp af Node.js på Ubuntu 16.04

Hapi.js er en rig, robust og kraftfuld Node.js-ramme designet til at bygge webapplikationer i Node.js-økosystemet. Dens ligefremme design gør, at jeg

Implementer en Node.js-applikation ved hjælp af Docker

Implementer en Node.js-applikation ved hjælp af Docker

Denne artikel viser dig, hvordan du implementerer din Node-applikation i en Docker-container. Bemærk: Denne vejledning forudsætter, at du har Docker installeret og læst

Sådan installeres Strapi på Ubuntu 16.04

Sådan installeres Strapi på Ubuntu 16.04

Introduktion Strapi er et open source NodeJS Content Management Framework dedikeret til at bygge sikre og skalerbare produktionsklare API-applikationer.

Nginx Reverse Proxy med Ghost på Ubuntu 14.04

Nginx Reverse Proxy med Ghost på Ubuntu 14.04

Ghost er en gratis og open source-blogplatform skrevet i node.js, fuldstændig tilpasselig og dedikeret til udgivelse. Forbered serveren: Opdater

Sådan installeres Ghost på Fedora 25

Sådan installeres Ghost på Fedora 25

Bruger du et andet system? Ghost er en open source-blogplatform, der er ved at vinde popularitet blandt udviklere og almindelige brugere siden udgivelsen i 2013. jeg

Installation af Ruby on Rails på Ubuntu 14.04

Installation af Ruby on Rails på Ubuntu 14.04

Ruby on Rails (RoR) er en ramme skrevet i Ruby programmeringssproget, der giver dig mulighed for at bruge Ruby i kombination med HTML, CSS og lignende programmer.

Sådan konfigureres en Koa.js Node-applikation på Ubuntu 16.04 LTS

Sådan konfigureres en Koa.js Node-applikation på Ubuntu 16.04 LTS

I denne vejledning lærer vi, hvordan man opsætter en Koa.js-webapplikation til produktion ved hjælp af Node.js. Vi vil også forbinde et eksempeldomæne med

Installation af Node.js og Express på Ubuntu

Installation af Node.js og Express på Ubuntu

Drevet af Chrome V8 Engine, Node.js er et populært sprog, der bruges til at bygge hurtige skalerbare applikationer. Det har allerede drevet adskillige projekter inkl

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere