Comment diriger mon serveur node.js vers un nom de domaine? (J’utilise aussi socket.io)

Ceci est mon code serveur:

var static = require('node-static'); var http = require('http'); var file = new(static.Server)(); var app = http.createServer(function (req, res) { file.serve(req, res); }).listen(2013); 

Et puis, j’ai tout un tas de code qui a à voir avec socket.io. Je viens aussi d’enregistrer un nom de domaine

Ainsi, je suis en mesure de saisir un DNS. Comment trouver le bon DNS pour entrer depuis mon ordinateur?

Comment je l’exécute habituellement, il s’agit de node server.js sur la console Windows. Ensuite, dans la barre d’adresse du navigateur, je fais soit localhost: 2013 ou si j’y accède depuis un autre appareil qui se trouve sur mon réseau wifi, alors je cherche l’adresse ipv4 en tapant ipconfig dans la console. Et puis je saisis cette adresse dans l’autre appareil suivie de: 2013 pour le port.

Alors, comment puis-je exécuter ce serveur avec mon propre nom de domaine?

Je sais que je vais me procurer un serveur permanent, mais pour le moment, je veux juste savoir comment le faire fonctionner depuis mon ordinateur.

Après s’être interrogé sur la même chose pendant des semaines, je pense avoir eu ma réponse. Voyez si cela peut vous aider.

Réponse courte Cette vidéo était ma réponse. Si vous n’êtes pas sous Windows, vous pouvez également vérifier celui-ci ou celui-ci , ou encore ceci ici


Longue réponse

Juste pour résumer le problème ici pour un public plus général : Vous avez compris comment exécuter node.js sur votre ordinateur. Vous utilisez la ligne de commande pour démarrer le serveur de noeud sur votre ordinateur en tapant “node server.js” (si “server.js” correspond à ce que vous avez nommé le fichier contenant le code du serveur). Vous avez probablement choisi un numéro de port dans votre fichier serveur (un nombre comme 3000 ou 9000), de sorte que vous puissiez accéder à votre travail via votre navigateur en tapant localhost: 3000 ou localhost: 9000. Si vous le souhaitez, votre application nodejs peut également utiliser une sorte de connexion socket.io, de sorte que vous créez une pièce dans votre fichier serveur, et chaque fois que vous ouvrez localhost: 3000 ou localhost: 9000 (ou le port de votre choix) en utilisant) via votre navigateur, il crée un nouvel utilisateur qu’il ajoute à la salle. Tout ça c’est bien! MAINTENANT, ce que vous voulez, c’est rendre cela accessible au Web, pas seulement à votre ordinateur. Parce que si quelqu’un avec un autre ordinateur devait taper son navigateur ‘localhost: 3000’ (ou n’importe quel port), il verrait des informations concernant LEUR ordinateur local, pas les trucs géniaux que vous avez construits sur VOTRE ordinateur et que vous êtes capable accéder par la même URL. Vous souhaitez donc que votre travail soit mis en ligne, accessible via un nom de domaine comme coolnodejsstuff.com. Mais vous vous demandez comment placer le code server.js sur votre ordinateur sur un nom de domaine. Ecrire l’URL du nom de domaine dans le code server.js ne semble pas aider!

Voici ce que j’ai trouvé: Ce dont vous avez besoin, c’est d’un serveur qui fonctionnera en ligne (et non sur votre ordinateur). C’est comme lorsque vous achetez un hébergement pour votre nom de domaine, à la différence près que vous n’avez pas beaucoup access aux fonctionnalités du serveur lorsque vous demandez un hébergement simple. Ce que vous devez rechercher, c’est un serveur dédié pour pouvoir installer manuellement les éléments sur ce serveur (comme nodejs, etc.) comme vous l’avez probablement fait lors de l’installation de nodejs sur votre ordinateur via la ligne de commande. Vous allez ensuite télécharger tous vos fichiers sur le serveur dédié et installer ce qui est nécessaire sur le serveur (nodejs, etc.). Une application nodejs pointe toujours vers le «localhost» de l’adresse IP sur la machine qu’elle exécute. Lorsque vous obtenez un serveur dédié, il est livré avec une adresse IP. C’est là que les fichiers téléchargés vont pointer, ce qui signifie que si vous installez tout correctement et que vous démarrez correctement le serveur, vous devriez pouvoir accéder à votre application nodejs via votre navigateur si vous entrez dans le champ URL l’adresse IP du serveur dédié. (suivi de deux points et du port que vous avez spécifié dans le code). Mais vous voulez que les gens accèdent à votre application de noeud via une URL significative et non un tas de chiffres, vous voulez que l’application pointe vers un nom de domaine que les gens peuvent plus facilement mémoriser. Pour cela, vous devrez simplement modifier les informations de votre nom de domaine (à condition que vous en possédiez un) afin de répondre aux exigences de quiconque avec lequel vous avez acheté votre serveur dédié.

Ok, mais comment le fais-tu réellement?

Voici la vidéo de ma solution. Cela explique assez bien tout ce que je viens de dire ci-dessus. Si vous suivez ces instructions, vous devriez pouvoir mettre votre application en ligne en moins d’une heure. Il est principalement conçu pour les utilisateurs de Windows et utilise donc des logiciels qui ne sont peut-être pas aussi bons sous Linux (putty, winscp, etc.). si ces vidéos ne peuvent pas vous aider les utilisateurs de Linux, faites simplement une recherche rapide sur Google avec des mots comme “deploy nodejs flightplan”)

  • 1.Installer un serveur , 2.Provision server & setup plan de vol
  • Comment déployer une application node.js

Anecdote Mon application n’a pas fonctionné tant que j’ai changé la façon dont j’ai passé le numéro de port dans mon fichier server.js, pour correspondre à l’exemple de la vidéo. Je crois que je disais

 var app = express(); var server = app.listen("3000"); 

Il est venu au travail après que je l’ai changé pour

 var app = express(); var server = app.listen(process.env.PORT || 3000); 

Et aussi, si vous utilisez une connexion socket.io, vous devez probablement démarrer une connexion du côté client. Faire var socket = io.connect(); est suffisant! Vous n’avez pas besoin de passer le “localhost: 3000” car par défaut, il suivra le chemin localhost.

Là! Vous devriez être mis! Je m’excuse si c’est un peu long et verbeux … J’espérais juste que quelqu’un m’aurait fait la même chose quand j’avais du mal à trouver une réponse!

En tout cas, j’espère que cela sera utile à quelqu’un!

Il devrait écouter sur le port 80.

Et les parameters DNS du fournisseur de domaine doivent pointer vers votre adresse IP sortante