Recherche de site Web

Comment écrire votre première application Node.js sous Linux


Les tendances en matière de développement Web ont radicalement changé au cours des dernières années et, en tant que développeur Web, pour être au top de votre forme, il est important de rester à jour avec les dernières technologies.

JavaScript est le langage de programmation tendance actuel ; c'est sans aucun doute la technologie la plus populaire utilisée par les développeurs full stack.

Les frameworks Web JavaScript sont devenus une solution magique pour un développement Web plus rapide avec une efficacité, une sécurité absolue et des coûts minimisés. Je suis sûr que vous avez entendu parler de Node JavaScript (communément appelé Node.js ou simplement Node), il y a un buzz à ce sujet. sur Internet.

Dans cet article, je vais vous montrer comment démarrer le développement d'applications en JavaScript à l'aide de Node.js sous Linux. Mais d’abord, commençons par une brève introduction à Node.js.

Qu’est-ce que Node.js ?

Node.js est un environnement d'exécution JavaScript open source, léger et efficace, basé sur le moteur JavaScript V8 de Chrome. Il est conçu sans threads (monothread) et a une implémentation similaire à Twisted, un moteur de réseau construit à l'aide de Python ou à Event Machine, une bibliothèque de traitement d'événements pour les programmes Ruby.

Le cœur de Node.js est basé sur une programmation événementielle ; un programmeur doit donc comprendre quels événements sont disponibles et comment y répondre.

Gestion des packages sous Node.js

Node.js utilise le gestionnaire de packages et l'écosystème JavaScript appelé « npm », qui contient une immense collection de bibliothèques open source gratuites. Il prend en charge le développement de logiciels modulaires. Vous pouvez l'utiliser pour installer des packages de nœuds, partager, distribuer votre code et gérer les dépendances des packages.

Pourquoi Node.js est-il important ?

Node.js est un outil puissant et donc important pour les raisons suivantes :

  • Il utilise un modèle d'exécution d'E/S asynchrone et non bloquant, piloté par les événements, qui améliore le débit d'une application et prend en charge l'évolutivité des applications Web du monde réel.
  • Il est monothread et ne peut donc utiliser qu’un seul processeur à la fois.
  • Une application Web node.js est un serveur Web complet par exemple Nginx ou Apache.
  • Il prend en charge les threads via l'API child_process.fork(), pour générer des processus enfants, et propose également un module de cluster.

Avec cette brève introduction, vous devez être impatient d'écrire votre premier programme JavaScript. Cependant, tout d'abord, vous devez installer les packages Node.js et NPM sur votre système Linux à l'aide du guide suivant.

  1. Installer la dernière version de Nodejs et NPM sur les systèmes Linux

Comment créer votre première application Node.js sous Linux

Une fois que vous avez installé Node.js, vous êtes prêt à partir. Commencez par créer un répertoire qui stockera vos fichiers d’application.

sudo mkdir -p /var/www/myapp

Accédez ensuite à ce répertoire et créez un fichier package.json pour votre application. Ce fichier constitue une petite documentation pour votre projet : nom du projet, auteur, liste des packages dont il dépend, etc.

cd /var/www/myapp
npm init

Cela vous posera un certain nombre de questions, répondez simplement comme décrit ci-dessous et appuyez sur [Entrée]. Notez que les éléments les plus importants dans package.json sont les champs de nom et de version, comme expliqué ci-dessous.

  • nom du package – le nom de votre application, par défaut le nom du répertoire.
  • version : version de votre application.
  • description : rédigez une brève description de votre application.
  • point d'entrée – définit le fichier de packages par défaut à exécuter.
  • commande de test – utilisée pour créer un script de test (par défaut, un script vide).
  • dépôt git – définissez un référentiel Git (si vous en avez un).
  • mots-clés – définissez des mots-clés importants pour que les autres utilisateurs puissent identifier votre package sur npm.
  • auteur – spécifie le nom de l'auteur, mettez votre nom ici.
  • licence : spécifiez une licence pour votre application/package.

Ensuite, créez un fichier server.js.

sudo vi server.js

Copiez et collez le code ci-dessous.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Ensuite, démarrez votre application à l'aide de la commande suivante.

node server.js
OR
npm start

Ensuite, ouvrez un navigateur Web et accédez à votre application Web, qui ne fait rien d'autre que d'imprimer la chaîne « Bonjour tout le monde ! », en utilisant l'adresse :

http://localhost:3333

Dans notre code ci-dessus, l'événement principal en cours de traitement est une requête HTTP via le module HTTP.

Le module HTTP Nodejs

Dans Node.js, les modules ressemblent davantage à des bibliothèques JavaScript, ils contiennent des fonctions que vous pouvez réutiliser dans votre application. Vous pouvez utiliser des modules intégrés, trente modules de fête ou créer les vôtres.

Pour appeler des modules dans votre application, utilisez la fonction require comme indiqué.

var http = require('http');

Une fois le module http inclus, il créera un serveur qui écoute sur un port particulier (3333 dans cet exemple). La méthode http.creatServer crée le serveur http réel qui accepte une fonction (qui est invoquée lorsqu'un client tente d'accéder à l'application) comme argument.

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);

La fonction dans http.createServer a deux arguments : req(request) et res(response). L'argument req est la demande d'un utilisateur ou d'un client et l'argument res envoie une réponse au client.

res.writeHead(200, { 'Content-Type': 'text/plain' });		#This is a response HTTP header
res.end('Hello World!');

La dernière partie du code envoie la sortie à la console, une fois le serveur lancé.

console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Routage dans Node.js

Dans cette section, je vais expliquer l'un des concepts les plus importants de la programmation Node.js connu sous le nom de routage (comparable au routage dans les réseaux informatiques : processus de recherche d'un chemin pour le trafic dans un réseau).

Ici, le routage est une technique de traitement de la demande d'un client ; servir le contenu demandé par le client, comme spécifié dans l'URL. Une URL est composée d'un chemin et d'une chaîne de requête.

Pour afficher la chaîne de requête de la demande d'un client, nous pouvons ajouter les lignes ci-dessous dans notre réponse.

res.write(req.url);
res.end()

Ci-dessous le nouveau code.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end();		
      }).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Enregistrez le fichier et redémarrez votre application à l'aide de la commande suivante.

node server.js
OR
npm start

À partir d'un navigateur Web, saisissez différentes URL qui s'afficheront comme indiqué ci-dessous.

http://localhost:3333
http://localhost:3333/about
http://localhost:3333/tecmint/authors

Maintenant, nous allons créer un très petit site Web pour Tecmint avec une page d'accueil, des pages à propos et des pages d'auteurs. Nous afficherons quelques informations sur ces pages.

Ouvrez le fichier server.js pour le modifier et ajoutez-y le code ci-dessous.

//include http module 
var http = require('http');

http.createServer(function(req,res){
	//store URL in variable q_string

	var q_string = req.url;
	switch(q_string) {
		case '/':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Welcome To linux-console.net!')
                        	res.end();
                        	break;
                	case '/about':
                		res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('About Us');
                        	res.write('\n\n');
                        	res.write('linux-console.net - Best Linux HowTos on the Web.');
                        	res.write('\n');
                        	res.end('Find out more: https://linux-console.net/who-we-are/');
                        	break;
                	case '/tecmint/authors':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Tecmint Authors');
                        	res.write('\n\n');
                        	res.end('Find all our authors here: https://linux-console.net/who-we-are/');
                        	break;
                	default:
                       		res.writeHead(404, { 'Content-Type': 'text/plain' });
                       		res.end('Not Found');
                        	break;
	}
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate....');

Dans le code ci-dessus, nous avons vu comment écrire des commentaires dans Node.js en utilisant les caractères // et avons également introduit les instructions switch et case pour acheminer les requêtes des clients.

Enregistrez le fichier, démarrez le serveur et essayez d'accéder aux différentes pages.

C'est tout pour le moment! Vous pouvez trouver plus d’informations sur les sites Web Nodejs et NPM.

Lire aussi : Comment installer PM2 pour exécuter des applications Node.js sous Linux

Conclusion

Node.js atteint aujourd'hui de nouveaux sommets, il a rendu le développement full-stack beaucoup plus facile qu'auparavant. Sa philosophie unique de programmation événementielle vous permet de créer des processus et des serveurs Web ultra-rapides, efficaces et évolutifs.

Nous expliquerons ensuite les frameworks Node.js, qui étendent ses capacités natives pour développer rapidement et de manière fiable des applications Web/mobiles. Partagez vos réflexions sur cet article via la section commentaires ci-dessous.