1. Home
  2. Langages
  3. Comment gérer les applications Node.js

Comment gérer les applications Node.js

Introduction

Node.js est essentiellement du code roulé sur nos serveurs et permettant d’héberger, de créer et de contrôler des applications web utilisant ce type de langage.

Dans les lignes qui suivent, nous insisterons sur les renseignements pour débutants. Nous commencerons par expliquer comment accéder à Node.js dans N0C et nous fournirons un exemple détaillé de lancement et de modification d’une application au moyen de cette interface.

Par après, pour les utilisateurs plus avancés, nous expliquerons comment faire ces mêmes opérations en ligne de commande.

Note : Le glossaire de N0C contient  des explications sur de multiples sujets et peut être consulté pour clarifier certains termes.

Documentation

On peut trouver sur le Web de la documentation sur Node.js, en particulier sous : https://nodejs.org/en/guides.

Vous pouvez vous référer à ce site pour obtenir davantage d’information : https://docs.cloudlinux.com/command-line_tools/#node-js-selector.

Débogage d’une application

Lorsqu’une erreur survient, une page comme celle ci-dessous s’affiche :

Cette page n’est pas très explicative. L’activation du mode de développement permet d’investiguer (comment).

Prérequis

Saisissez dans votre navigateur Web l’adresse suivante : https://mg.n0c.com/fr/.

Accès à Node.js dans N0C

  1. Dans le menu contextuel, choisissez Langages > Node.js.
  2. Les applications déjà mises en place sont affichées dans l’interface :

Mise en place d’une nouvelle application Node.js avec N0C

Si vous désirez déployer une application Nuxt.js sur l’hébergement N0C sans effort, vous pouvez vous référer à ce guide. L’approche manuelle est expliquée dans cette vidéo.

Pour expliquer l’approche avec davantage de clarté, nous procéderons avec un exemple. 

Admettons que vous vouliez créer l’application app2.js qui permet d’afficher les mots « Hello World! NodeJS ». Trois étapes sont nécessaires :

  1. En premier lieu, il faut créer une application dans le répertoire destiné à la contenir (nous appellerons ce répertoire « app2 » pour les besoins de l’exemple, l’usager pouvant lui-même donner au répertoire le nom voulu). Lorsqu’elle est exécutée, l’application affiche les mots « It works ! ».
  2. Il faut ensuite la programmer de manière adéquate (dans notre exemple, pour qu’elle affiche « Hello World! NodeJS ») et créer un fichier « package.json« .
  3. Enfin, il faut appeler l’environnement de l’application.

Étape 1 – Création de l’application Node.js

Assurez-vous que le répertoire app2 est créé (comment).

  1. Cliquez sur le bouton Créer :
  1. Sélectionnez la VERSION de Node.js voulue :
  1. Indiquez dans quel RÉPERTOIRE D’APPLICATION vous souhaitez que l’application soit créée (dans notre exemple, on inscrirait app2).
  2. Indiquez sous DOMAINE/URL D’APPLICATION depuis quelle URL l’application devrait être accessible (dans notre exemple, on inscrirait app2).
  3. Indiquez le nom du FICHIER DE DÉMARRAGE (optionnel).
  4. Cliquez sur le bouton CRÉER. Un message confirmant la réussite de la création est alors affiché.
  5. Confirmez la création de app2.js en ouvrant le répertoire app2 dans le Gestionnaire de fichiers (comment).
  6. Testez l’application Node.js en tapant dans votre navigateur https://${votredomaine}/app2, où il faut remplacer ${votredomaine} par votre nom de domaine.
  7. Le résultat est (comme on s’y attendait) : « It works ! ».

Étape 2 – Programmation de l’application

Maintenant que l’application Node.js est installée dans le répertoire à utiliser et fonctionnelle, on peut la programmer à notre guise et améliorer l’environnement avec les fichiers de configuration (setting files) package.json et le gestionnaire de paquet (package manager) npm

Un «package.json» est un fichier JSON qui existe à la base d’un projet Node.js. Il contient des métadonnées liées au projet et il est utilisé pour gérer les dépendances, scripts, versions et divers autres aspects du projet. 

Voici les étapes pour programmer :

  1. Dans le Gestionnaire de fichiers, ouvrez le répertoire (dans notre exemple, app2) et éditez le code app2.js (comment). 
  2. Ajouter la configuration de l’application au fichier app2.js. Dans notre exemple, copiez le code suivant dans la fenêtre de programmation (comment), de sorte que les mots « Hello World! NodeJS » soient affichés lorsque l’usager exécutera app2 sur votre domaine :
const http = require('http')
const hostname = '127.0.0.1';
const port = 'passenger';
const mondomaine = 'votredomaine.com'

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World! NodeJS');
});
server.listen(port, hostname, () => {
    console.log(`Server running at http://${mondomaine}/`);
}); 
  1. Dans le code, remplacez ${votredomaine} par le nom de votre domaine.
  2. Sauvegardez le code.
  3. À ce point, veillez à redémarrer l’application, comme expliqué au paragrapheRedémarrage d’une application Node.js.
  4. Testez l’application en tapant dans votre navigateur via https://${votredomaine}/app2. Le résultat devrait maintenant être « Hello World! NodeJS ».

Installation des dépendances du projet dans le fichier« package.json »

Afin d’installer les dépendances de votre projet, assurez-vous que votre package.json soit bien à la racine du projet. Ensuite :

  1. Identifiez l’application (app2 dans notre exemple) et cliquez sur l’icône Modifier :
  1. Installez le module NPM en cliquant sur le bouton Installer :

Étape 3 – Appel de l’environnement de l’application 

Avant d’effectuer toute autre commande (par exemple,npm ou node), vous devez appeler l’environnement de l’application en lançant à la racine de votre application la commande suivante :

La commande doit être copiée dans le shell du compte en question. Il est possible de se connecter en SSH.

Pour voir la commande, vous devez éditer l’application (veuillez vous référer au paragaphe Modification des paramètres d’une application NodeJS).

Donc, dans notre exemple, la commande copiée est :

source /home/fbkfdayw/nodevenv/app2/11/bin/activate

Où :

  • « fbkfdayw » doit être remplacé par votre Nom d’utilisateur;
  • « app2 » doit être remplacé par le nom de votre application; et
  • « 11 » doit être remplacé par le numéro de version Node.js de l’application.

Note

Vous pouvez consulter la documentation disponible sur https://nodejs.org/en/docs/si vous avez besoin d’éliminer les bogues que vous pourriez avoir dans votre code.

Exécution d’actions sur l’application avec N0C

Redémarrage d’une application Node.js

Parfois, il est nécessaire de redémarrer une application comme, par exemple, lorsque vous modifiez le code.

  1. Cliquez sur l’icône Redémarrer vis-à-vis de l’application :
  1. Un message doit être affiché pour confirmer le succès de l’exécution de la commande.

Modification de la version d’une application NodeJS

  1. Identifiez l’application à modifier et cliquez sur l’icône Modifier la version :
  1. Sélectionnez la VERSION NODEJS voulue :
  1. Cliquez sur le bouton MODIFIER.

Modification des paramètres d’une application Node.js

  1. Identifiez l’application à modifier et cliquez sur l’icône Modifier :
  1. Modifiez les paramètres souhaités :
  1. Installez le module npm en cliquant sur le bouton Installer.
  2. Exécutez la commande pour saisir l’environnement de l’application.
  3. Cliquez sur le bouton MODIFIER pour enregistrer vos changements.

Arrêt et démarrage d’une application

On peut arrêter une application en cliquant sur l’icône Arrêter :

On peut démarrer une application en cliquant sur l’icône Démarrer :

Suppression d’une application Node.js

  1. Identifiez l’application et cliquez sur l’icône Supprimer :
  1. À l’invite de commande, confirmez la suppression.

Mise en place d’une nouvelle application Node.js en ligne de commande

Pour les usagers plus avancés, l’approche par ligne de commande peut être employée. 

Les étapes suivantes doivent être suivies dans l’ordre :

  1. se connecter en SSH;
  2. retrouver les versions de Node.js disponibles;
  3. créer l’application de base fonctionnelle au niveau de CloudLinux;
  4. mettre en place l’application.

Note

Le format json est supporté seulement comme retour de commande. Il est donc possible de formater le retour en redirigeant le stdout vers python -m json.tool. Exemple :

/usr/sbin/cloudlinux-selector get --json --interpreter=nodejs | python -m json.tool

Étape 1 – Connection en SSH

Connectez-vous en SSH (comment).

Par exemple, si vous utilisez l’environnement MacOSX de Apple, vous pouvez entrer :

ssh < USAGER >@ < DOMAINE > -p PORT

Où :

  • USAGER :  Votre nom d’utilisateur.
  • DOMAINE : Le nom du domaine (assurez-vous qu’il pointe sur l’hébergement).
  • PORT : Port à utiliser pour les hébergements (à moins que vous en soyez autrement informé, utilisez 5022).

À l’invite de commande, fournissez votre mot de passe.

Étape 2 – Recherche des versions de Node.js disponibles

Cette commande retournera les versions de Node.js disponibles sur le serveur :

$~ /usr/sbin/cloudlinux-selector get --json --interpreter=nodejs

Étape 3 – Création de l’application Node.js de base fonctionnelle au niveau de CloudLinux

La commande suivante permet de créer une base fonctionnelle :

$~ /usr/sbin/cloudlinux-selector create --interpreter=nodejs --json --app-root=<APP_ROOT> --app-uri=<APP_URI> --app-mode=production --version=<VERSION> --domain=<DOMAIN> <STARTUP_FILE>

Où :

  • APP_ROOT : Le répertoire dans lequel vous voulez installez votre application (conservez cette variable pour les commandes suivantes). Exemple : /home/user/applicationnode1
  • APP_URI : Le chemin de votre application après votre domaine. Exemple : /applicationnode1 qui deviendrait l’url suivante : domaine.com/applicationode1.
  • VERSION : Une version disponible (d’après le retour de la commande que nous avons vue auparavant). Par exemple : 9.11.
  • DOMAIN : Le nom du domaine sur lequel vous voulez rouler votre application. Par exemple : domaine.com.
  • STARTUP_FILE : Le nom du fichier « d’entrée » de votre application. Par défaut: app.js. Exemple : index.js

Le retour escompté est :

{"result": "success", "timestamp": 1596731243.1282492}

Vous avez maintenant une application Node.js de base fonctionnelle si « status=Ok » est affiché.

Sinon, il faut voir le message d’erreur et corriger la commande en conséquence.

Étape 4 – Mise en place de votre application

Téléversez votre application dans le répertoire dans lequel vous avez installé votre application (<APP_ROOT>) incluant votre package.json.

Une fois vos fichiers en place, vous pouvez installer les packages NodeJS à l’aide de la commande suivante:

$~ /usr/sbin/cloudlinux-selector  install-modules --json --interpreter=nodejs --app-root=<APP_ROOT>

Où la variable APP_ROOT est le répertoire dans lequel vous voulez installez votre application. Exemple : /home/user/applicationnode1.

Exécution d’actions sur l’application en ligne de commande

Il est possible de stopper ou redémarrer une application, et encore plus. Il suffit d’entrer la commande appropriée, selon le cas. 

– Démarrer :

$~ /usr/sbin/cloudlinux-selector (start) --json --interpreter=nodejs --app-root=<APP_ROOT>

– Stopper :

$~ /usr/sbin/cloudlinux-selector (stop | destroy) --json --interpreter=nodejs --app-root=<APP_ROOT>

– Démarrer de nouveau :

$~ /usr/sbin/cloudlinux-selector (restart) --json --interpreter=nodejs --app-root=<APP_ROOT>

– Détruire :

$~ /usr/sbin/cloudlinux-selector (destroy) --json --interpreter=nodejs --app-root=<APP_ROOT>

Il est aussi possible d’exécuter les scripts inscrits au niveau du package.json :

$~ /usr/sbin/cloudlinux-selector run-script --json --interpreter=nodejs --app-root=<APP_ROOT> --script name=<SCRIPT_NAME> -- --<OPTION_1> <ARG1> <ARG2>

Où les variables suivantes sont utilisées :

SCRIPT_NAME : Le nom du script inscrit dans votre package.json

OPTION_1, ARG1 et ARG2 : Arguments du script

Déconnexion en ligne de commande

Pour se déconnecter, il suffit d’entrer la commande suivante :

exit

Comment transférer des journaux vers N0C Storage

Si vous désirez transférer des journaux (logs) d’une application NodeJS vers N0C Storage, vous pouvez vous référer à ce script JavaScript : https://github.com/PlanetHoster/transfer-logs-to-n0c-storage-demo.

En transférant les journaux de votre serveur vers N0C Storage, vous gagnez de la place et évitez d’encombrer votre SSD, tout en gardant vos journaux accessibles.

Ce script peut être utilisé comme point de départ pour créer des scripts plus complexes ou être intégré directement dans une application. Dans l’exemple utilisé dans le script, une tâche cron est mise en place pour exécuter le script deux fois par jour.

Updated on octobre 30, 2024

Related Articles