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.
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
- Dans le menu contextuel, choisissez Langages > Node.js.
- Les applications déjà mises en place sont affichées dans l’interface :
Mise en place d’une nouvelle application Node.js avec N0C
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 :
- 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 ! ».
- 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« .
- 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).
- Cliquez sur le bouton Créer :
- Sélectionnez la VERSION de Node.js voulue :
- Indiquez dans quel RÉPERTOIRE D’APPLICATION vous souhaitez que l’application soit créée (dans notre exemple, on inscrirait app2).
- Indiquez sous DOMAINE/URL D’APPLICATION depuis quelle URL l’application devrait être accessible (dans notre exemple, on inscrirait app2).
- Indiquez le nom du FICHIER DE DÉMARRAGE (optionnel).
- Cliquez sur le bouton CRÉER. Un message confirmant la réussite de la création est alors affiché.
- Confirmez la création de app2.js en ouvrant le répertoire app2 dans le Gestionnaire de fichiers (comment).
- Testez l’application Node.js en tapant dans votre navigateur https://${votredomaine}/app2, où il faut remplacer ${votredomaine} par votre nom de domaine.
- 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 :
- Dans le Gestionnaire de fichiers, ouvrez le répertoire (dans notre exemple, app2) et éditez le code app2.js (comment).
- 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}/`); });
- Dans le code, remplacez ${votredomaine} par le nom de votre domaine.
- Sauvegardez le code.
- À ce point, veillez à redémarrer l’application, comme expliqué au paragrapheRedémarrage d’une application Node.js.
- 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 :
- Identifiez l’application (app2 dans notre exemple) et cliquez sur l’icône Modifier :
- 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.
- Cliquez sur l’icône Redémarrer vis-à-vis de l’application :
- 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
- Identifiez l’application à modifier et cliquez sur l’icône Modifier la version :
- Sélectionnez la VERSION NODEJS voulue :
- Cliquez sur le bouton MODIFIER.
Modification des paramètres d’une application Node.js
- Identifiez l’application à modifier et cliquez sur l’icône Modifier :
- Modifiez les paramètres souhaités :
- Installez le module npm en cliquant sur le bouton Installer.
- Exécutez la commande pour saisir l’environnement de l’application.
- 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
- Identifiez l’application et cliquez sur l’icône Supprimer :
- À 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 :
- se connecter en SSH;
- retrouver les versions de Node.js disponibles;
- créer l’application de base fonctionnelle au niveau de CloudLinux;
- 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.