Bonjour à tous !
Je viens de réaliser mon premier site web avec node.js en back end et mongodb en bdd et je voulais avoir vos conseils pour l'hébergement. Je n'y connais rien en hébergement (j'ai toujours utilisé ovh mais ils n'ont pas d'offre node.js abordable) et j'aimerai y voir plus clair.
Mon site se composera de fichiers statiques à servir et d'un fichier app.js qui s'occupera de ça et de lancer la connection à la base de donnée mongodb via le module node deployd. Ce module build à volé un fichier dpd.js qu'il suffit de charger ensuite dans son application.
Voici en quoi consistera mon fichier serveur :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // app.js const http = require('http'); const fs = require('fs'); const express = require('express'); const deployd = require('deployd'); // on lance le serveur const app = express(); app.get('/', function(request,reponse) { reponse.sendFile(__dirname + "/index.html"); app.use('/static',express.static('static')) }) app.listen(8080); // on lance la bdd via deployd const options = {port: 8001, env : "development"}; const dpd = deployd(options); dpd.listen(); |
Du coté de mon index.html on récupére le fichier dpd.js construit à la volé en écoutant le port spécifié (8001 ici) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html> <html> <head> <meta charset=utf-8> <title>Mon super site</title> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel=stylesheet> <link href=/static/css/app.506b382d042285aa6c872c74c8a97a4e.css rel=stylesheet></head> <body> <div id=app></div> <script type=text/javascript src=http://monsupersite.fr:8001/dpd.js></script> <script type=text/javascript src=/static/js/manifest.13f5fc0cefcfd2fc1526.js></script> <script type=text/javascript src=/static/js/vendor.bbc7242ced9c98b6af23.js></script> <script type=text/javascript src=/static/js/app.690cb7ff4a6cfa1778a8.js></script> </body> </html> |
En local tout marche parfaitement. Mais je me demande si sur un hébergeur je peux avoir accés à deux ports différent. Il me faudrait le port classique 8080 pour écouter le site et envoyer le fichier index.html et un second port (n'importe lequel) pour la base de donnée (ici 8001). Est-ce n'importe quel hébergeur me permet de faire marcher mon site correctement ?
J'ai regardé sur Gandhi et ils parlent de la variable d'environnement PORT. Est ce qu'il s'agit simplement du port vers lequel est redirigé la requête du nom du domaine et auquel cas je peux accéder à un autre port sans souçis pour la base de donnée ou est-ce que j'ai le droit d'utiliser que ce port là ?
Ma question peut sembler stupide mais je préfère la poser avant de réserver un hébergeur et un nom de domaine et me rendre compte que ça ne correspond pas à mon besoin…
Sinon auriez-vous d'autres hébergeurs que gandi à me proposer qui répondrait à mes besoins (Node.js + mongoDB + accés à un autre port que le 8080) ? Question bête mais est-ce qu'avec une offre de base on a accés à un terminal pour installer les module de son choix ? Comment cela se fait-il ? Via un package.json ?
Merci d'avance pour vos réponses