Plusieurs questions sur NodeJs

16316
,

Bonjour à tous,

Je me mets à NodeJS que je trouve très intéressant. Néanmoins, je me demande quelle portée il peut avoir hormis sur des sites à fort flux (a moins que je me trompe - dites le moi....)

En me créant un petit site d'essai, je me suis posés quelques questions et j'aimerais avoir votre avis :

1) Est-il possible d'écrire son code avec CoffeScript pour qu'il soit ensuite compilé en JS ?
2) Comment fait-on pour mettre en production plusieurs sites en Node sur une même machine ?

Avec Apache et Php, je comprends, mais là j'avoue que je sèche.

merci pour vos réponses

6 Réponse

27320
,

Salut,

Pour ce qui est du coffeeScript il n'y aucun problème sur ce point, sont but est quand même de transcompilé le code en javascript.
Et pour faire la mise en production de plusieurs sites en Node Js, il te faut un service qui joue le role de reverse-proxy, ce qui te permettra d'hébergé plusieurs site sur le même serveur, par contre il te faut plusieurs nom de domaine afin que apache ou nginx puisse redirigé les requêtes sur le port 80.
Si tu n'a pas plusieurs domaine et seulement l'ip attribué à ton serveur tu peux faire écouté des applications sur différent port.

Default
,

Bonjour,
pour les autres portées je ne saurais dire. En revanche pour les autres points:

  • il est tout à fait possible d'écrire en CoffeScript et de mettre en place un système de compilation automatique avec browserify / webpack / gulp / grunt. L'utilisation de coffeScript ou même de ECMAScript 6 via BabelJs. Je conseille tout de même d'utiliser du "VanillaJs" pour rester au plus proche du langage. L'abstraction emmène une compréhension amoindri du langage.

  • pour gérer différentes instances nodejs, de très bon outils sont disponnible comme pm2. Il faut simplement que chaque instance écoute un port différent. Tu peux ensuite, via apache, nginx ou autre gérer la redirection vers le port souhaité.

exemple:

 -- instance1 : 8080 ------------\
 -- instance2: 8081 ------------------------ apache :80
 -- instance3: 8082 ------------/

Apache te permet ici de redirigé, en fonction de ton dns par exemple, sur l'instance souhaité.

Cordialement

Default
,

@orion tu m'as devancé :)

Default
,

Néanmoins, je me demande quelle portée il peut avoir hormis sur des sites à fort flux

je t'arrète dessuite, Node.js n'est pas fait pour faire des site internet, PHP fait tres bien le taf pour ca.

Est-il possible d'écrire son code avec CoffeScript pour qu'il soit ensuite compilé en JS ?

Absolument tien une peitt video

Comment fait-on pour mettre en production plusieurs sites en Node sur une même machine ?

la encore node n'est pas fait pour faire des sites...Ceci dit, c'est pas magique, ça prend tout son sens pour des applis full js (gmail par exemple),
ou impliquant le lancement de process en pagaille etc. Pour de l'appli classique crud, l'intérêt est limité.

Ça demande de la rigueur pour ne pas écrire du code spaghetti, et ça requiert probablement plus de boulot pour maintenir une appli, car c'est une techno qui évolue rapidement.

petite citation de ce site blog.lesieur.name

Les bons cas d'utilisation de node:

Les APIs JSON:
Construire des APIs légère REST / JSON est quelque chose pour laquelle Node.js brille vraiment. Son modèle non-bloquant Entrée/Sortie combiné à JavaScript en font un excellent choix pour emballer d'autres sources de données telles que des bases de données ou des services Web et de les exposer via une interface JSON.

Applications simple d'une seule page
Si vous envisagez d'écrire une application avec une page lourde unique avec AJAX (pensez à Gmail), Node.js répond parfaitement au besoin. La capacité de traiter de nombreuses demandes à la secondes avec un temps de réponse faible, ainsi que le partage des tâches comme la validation d'informations entre le client et le serveur en font un excellent choix pour les applications web modernes qui font beaucoup de traitement sur le client.

Les mauvais cas d'utilisation:

Des applications HTML simple (Créer, Lire, Mettre à jour et Effacer)
Alors que Node.js devient un outil amusant pour écrire toutes sortes d'applications web, ne vous attendez pas à ce qu'il vous fournisse plus que PHP, Ruby ou Python sur ces points. Oui, votre application sera probablement plus évolutive, mais cependant votre application ne vous permettra pas, magiquement, d'obtenir plus de trafic tout simplement parce que vous l'écrivez en Node.js.
La vérité est que si nous commençons à regarder du côté de bons frameworks Node.js, il n'y a rien de plus puissant que Rails, CakePHP ou Django sur la scène à l'heure actuelle. Si la plupart de vos applications se contente d'un simple rendu HTML basé sur une base de données précise, s'aider de Node.js ne vous fournira pas beaucoup d'avantages commerciaux tangibles.

44835
,

Il me semble qu'il y ait la même contrainte pour les instances RubyOnRail.
Graph a fait un tuto sur l'installation de Ror & Phusion passenger
Phusion passenger marche aussi pour Nodes

16316
,

Merci à tous pour vos avis et suggestion.
@Julienng : je vais essais d'aller voir du coté de VanillaJs et BabelJs pour voir ce que cela donne...

@Defy : j'avais bien compris que faire un blog avec NodeJS c'était un peu superflu et que php dans ce cas la faisait bien l'affaire.

Du coup, m'en servir pour construire des API entre les différents progiciels, BDD du boulots n'est pas idiot ?
La procédure à suivre dans ce cas là, c'est de se servir des progiciels pour faire des exports en JSON, les traiter avec Node et les renvoyer dans un autre progiciel ?

Merci