Publier une application Node.js

Ce que vous obtenez : votre application Node en cours d’exécution sur le domaine d’un de vos sites, avec HTTPS, et qui redémarre automatiquement en cas de panne.

Avant de commencer

Vous avez besoin d’un site déjà créé, et l’application a besoin de deux choses : un package.json et un fichier d’entrée, par exemple app.js.

Et une chose à décider avant de commencer : le domaine du site passe à servir l’application. Si vous aviez un site Web là-bas, il disparaît. Si vous voulez juste essayer, utilisez un site séparé.

Votre application doit écouter sur le port que nous lui avons passé dans la variable d’environnement PORT. Si vous l’avez écrit à la craie, elle ne répondra pas.

Étapes

  1. Téléchargez les fichiers dans le dossier du site, avec le Gestionnaire de fichiers ou par SFTP (Téléverser vos fichiers : FTP, SFTP et gestionnaire de fichiers).

  2. Menu Sites → Applications Node.js → Nouvelle application.

  3. Remplissez :

    • Site - votre domaine passera à servir cette application.

    • Nom - pour la reconnaître dans la liste.

    • Fichier d’entrée - celui qui lance l’application, dans son dossier. Par exemple app.js.

    • Dossier (facultatif) - à l’intérieur du dossier du site. Vide, la racine.

    • Variables d’environnement (facultatif) - un par ligne, avec la forme CLAVE=valor.

  4. Créer l’application.

Lorsqu’il est lancé, nous installons les dépendances (npm install --production) et nous lui donnons son port à PORT.

Comment vérifier que tout fonctionne

La ligne de l’application doit rester en cours, et https://tudominio.com doit rendre ce que votre application rend, pas le site Web précédent.

Si cela ne s’affiche pas, ouvrez le Journal de l’application à partir de votre ligne : c’est là que Node a écrit au démarrage, c’est là que l’erreur réelle est visible.

Les boutons Démarrer, Redémarrer et Arrêter se trouvent dans la même rangée.

Problèmes courants

L’application démarre et le domaine donne une erreur 502 ou ne répond pas

C’est presque toujours le port. Vous devez écouter dans process.env.PORT, pas dans un numéro écrit à la main. Regardez-le dans le registre : s’il indique qu’il écoute sur 3000 et que nous lui avons donné un autre, c’est tout.

Le registre indique « Cannot find module »

Il manque une dépendance dans le package.json, ou vous l’avez installée comme dépendance de développement. Comme nous l’installons avec –production, celles de développement ne sont pas prises en charge : passez-la aux normales et redémarrez.

Téléchargez les fichiers et ne trouvez pas celui d’entrée

Le chemin du fichier d’entrée est relatif au dossier de l’application, et non à la racine du site. Si votre app.js se trouve dans un sous-dossier, placez-le dans « Dossier ».

J’ai mis à jour les changements et cela fonctionne toujours comme avant

Node charge le code à l’arrêt. Appuyez sur « Redémarrer » dans votre ligne et regardez à nouveau.

Mon site web précédent a disparu

C’est ce qu’il fait : le domaine du site passe à servir l’application. Arrêtez l’application et le site redevient serveur de vos fichiers.

J’ai besoin d’une base de données pour l’application

Les bases de données de vos sites sont MariaDB et elles sont là-bas. Si vous voulez PostgreSQL ou Redis, ils sont loués séparément : consultez Base de données gérées pour les projets et les VPS.

Puis-je avoir deux applications sur le même domaine ?

Non : un domaine sert une seule. Utilisez un autre site, ou un sous-domaine avec son propre site.

L’application tombe de temps en temps

Nous le redémarrons automatiquement à chaque fois, donc le service est maintenu, mais le problème est dans votre code. L’enregistrement conserve ce qui se passait avant chaque chute : c’est là la piste.