Notre annonce du support de nouveaux langages a suscité de l’enthousiasme et plusieurs clients font déjà tourner des applications Node.js. Nous continuons donc sur notre lancée avec ce billet qui se concentre, justement, sur Node.js.
Un langage majeur
Comme promis la semaine dernière, nous avons une surprise : Node.js devient le quatrième langage majeur supporté chez alwaysdata, après PHP, Python et Ruby. Qu’est-ce que cela veut dire ?
D’une certaine manière, on pourrait dire que Node.js est supporté depuis longtemps chez alwaysdata : il « suffisait » de télécharger sur son compte l’interpréteur depuis le site officiel pour faire tourner du Node.js. Côté web, il fallait toutefois ruser pour faire tourner son application, par exemple en utilisant PHP en reverse proxy. Faisable… mais complexe.
Devenir un langage majeur, cela implique :
- que nous avons préinstallé l’interpréteur, et qu’il est même possible de choisir parmi plusieurs versions de l’interpréteur (via le menu Environnement de l’administration alwaysdata). Aujourd’hui, Node.js est disponible en versions 6.x (6.11.2) et 8.x (8.4.0) ;
- que de nouvelles versions de l’interpréteur seront installées régulièrement, pas uniquement des mises à jour de sécurité ;
- qu’il est facile de déployer une application web dans ce langage ;
- qu’il est facile d’installer des dépendances externes, en utilisant le gestionnaire de paquets officiel en SSH. Pour Node.js, c’est npm, qui est également préinstallé.
Nous avons donc rajouté un nouveau type de site, Node.js. Il est similaire au type Programme utilisateur — car les applications Node.js intègrent leur propre serveur HTTP et n’ont pas besoin de couche intermédiaire — à une différence près : il est possible de spécifier une version de Node.js explicite pour ce site. Et donc d’avoir plusieurs sites distincts utilisant des versions de Node.js différentes.
Exemple : déployer une application Express
Express est l’un des frameworks Node.js les plus connus. Voyons comme héberger une application développée avec.
- Tout d’abord, nous devons installer Express. Suivons la documentation officielle, en exécutant les commandes en SSH (et en acceptant tout par défaut) :
1 2 3 4 | $ mkdir myapp $ cd myapp $ npm init $ npm install express --save |
- Créons ensuite le fichier app.js, toujours en suivant la documentation d’Express. On modifie légèrement le code pour que l’application écoute sur l’IP et le port qui seront donnés en variables d’environnement :
1 2 3 4 5 6 7 8 9 10 | const express = require('express') const app = express() app.get('/', function (req, res) { res.send('Hello World!') }) app.listen(process.env.PORT, process.env.IP, function () { console.log('Example app started!') }) |
- Enfin, dans l’administration alwaysdata, créons un site de type Node.js, en indiquant comme commande :
1 | node ~/myapp/app.js |
Le tour est joué : notre petite application Express est bien joignable !
Prochain langage au programme, pour le second billet de notre série : Lua.
Génial !!
Merci Alwaysdata !
Super ! :-D
Apparemment ces variables d’environnement n’existent plus aujourd’hui.
Si, elles existent toujours.
quel port utiliser ? le 80 est refusé, aucune info dans la partie « site/configuration »
je n’arrive pas a accéder à mon site avec nodejs
Bonjour, tout est indiqué sous le champ Commande à la création du site. Et également dans notre documentation. Si vous rencontrez des problèmes, merci d’ouvrir un ticket depuis la section Support de l’interface.
Merci beaucoup
Comment faire pour déployer pour react.js
@Hakim : React est une bibliothèque client, et non serveur. Le déploiement se fait donc directement « sur » votre page HTML.
Bonjour ,
J’ai des complications au niveau du déploiement de mon app node js je l’ai mentionner sur un ticket et j’ai un soucis au niveau du Upstream donc apparement lier au site et ces fichiers mais tout est bon peut être que sa vient de mon environnement a voir … De toute fai c’est j’ai tout mis dans le ticket.