J'essaie de me faire la tête où le nœud s'inscrit. C'est une niche, alors de dire ... Quels obstacles viser à fournir une rampe? P>
J'ai lu à travers les exemples et j'ai vu quelques vidéos de démonstration. Et tout semble très slick ... Création d'un simple serveur Web; créer un simple serveur de chat TCP / IP; Utilisation du nœud comme front basé JSON pour un serveur de base de données ... Mais d'où cela correspond-il? Je veux dire, sauf pour le dernier exemple, quelle est à faire avec le nœud? P>
Je suppose que ce que je demande est-ce: qu'est-ce que vous utiliseriez un nœud? Et pourquoi? P>
6 Réponses :
C'est une bonne question! Comme vous l'avez dit, le codage avec le nœud est rapide et simple. Ce n'est pas le seul outil rapide et simple là-bas, alors ce qui le rend unique? J'attends avec impatience les autres réponses! P>
My Contribution: L'une des avantages de l'utilisation de nœuds est que vous pouvez écrire à la fois votre code client et votre code côté serveur en JavaScript. Cela vous donne une marge de réutilisation de code que vous n'auriez pas autrement. P>
Je suppose que la réutilisation du code entre le côté serveur et le côté client serait minimale.
Tu penses? Dans une page Web simple, la validation de l'entrée de formulaire peut être réutilisée et dans des applications Web complexes avec des niveaux d'interaction élevés, je peux imaginer un code non attrayant en cours de partage. Non?
@ Demark Code La réutilisation est énorme. J'écris un jeu multijoueur de client / serveur lourd. 70% du code est réutilisé.
C'est assez surprenant pour moi. Et très intéressant.
Liste des raisons d'utiliser le nœud: p>
bibliothèques et outils pouvant être utilisés avec node.js: p>
Toutes ces bibliothèques sont basées sur le fait que Node.js vous permet de gérer tout de manière basse et que la communication avec le client est lisse et rationalisée car vous utilisez la même langue à l'une ou l'autre extrémité. P>
Le point de vente pour moi est que j'ai la même bibliothèque MVC Backbone.js sur le client et le serveur. Tout mon code modèle est réutilisé. Les modèles sur le client et le serveur sont synchronisés de manière triviale sur maintenant.js . P>
Mon accès à la base de données est conduit par Cradle (ou Mongoose ) qui est tout écrit en JavaScript. En fait, mon MVC lie directement dans la base de données et enregistre de manière transparente mes modèles. Les modèles définissent des méthodes utiles telles que Le rendu de mes modèles est effectué avec EJS , mes vues sont partagées entre le client et le serveur. Il existe simplement une grande quantité de réutilisation de code et tout mon développement Web est effectué en JavaScript, ce qui signifie que je n'ai pas besoin d'allumer mon paradigme ou mon style de codage. p>
Je n'ai pas de difficulté à décider comment je dois gérer la zone grise entre ce que vit sur le serveur et ce qui vit sur le client, car cette zone grise a été complètement lissée et que le client et le serveur s'intègrent parfaitement. P>
Si vous allez écrire une application Web complexe dynamique Ajax, Node.js est un candidat parfait. Si vous allez avoir un site Web statique, Node.js est un candidat parfait (vous l'avez mis en 20 minutes). P>
Si vous allez écrire un site Web lourde serveur avec de petites fonctionnalités côté client et des post-retours, vous êtes peut-être préférable d'utiliser PHP ou ASP.NET. Mais si vous faites cela, vous devez examiner une fonctionnalité latérale plus dynamique du client et utiliser AJAX. P> Enregistrer code> et Fetch code> pour effectuer un stockage de base de données persistant. Je ne touche pas manuellement la base de données car mon MVC me permet de plug-in dans un pilote de base de données pour le faire pour moi. P>
Il serait intéressant de prendre des idées utilisées dans le nœud et de les appliquer dans un autre cadre. Il me semble que rien ne langeait ce paradigme de serveur HTTP à JavaScript ou le moteur V8.
@Mark EventMachine pour Python est similaire. Il n'y a vraiment rien de l'attacher à JavaScript. Mais le fait que nous ayons JavaScript vous permet de le gérer différemment. JavaScript sous forme de langue et une communauté est très adaptée à ce paradigme de serveur HTTP
Ce qui le lie à JavaScript est que JavaScript est naturellement asynchrone et manque de bibliothèques synchrones. Ce qui le lie à v8 est que V8 est vraiment vraiment rapide.
@generalhenry Bien que le fait que c'est attaché à V8 soit probablement mauvais. Il devrait être capable de s'appuyer sur n'importe quel interprète JS (dans la raison).
@generalHenry Que voulez-vous dire quand vous dites "JavaScript est naturellement asynchrone"? L'entrée Wikipedia sur JavaScript n'a pas le mot «asynchrone» dedans.
@Mark Vous essayez d'écrire un code asynchrone dans C. JavaScript propose des fonctions de première classe, ce qui permet d'écrire naturellement un code asynchrone.
@Raynos donc, il est difficile d'écrire du code asynchrone en C, donc JavaScript est naturellement asynchrone? Il ne suive pas logiquement. Nœud.js pourrait être génial, mais vous ne devriez pas avoir besoin de faire des choses pour convaincre les gens. Il est trivial d'écrire un code asynchrone dans une centaine de langues, ce qui rend javascript mieux que d'eux?
@ Goibe ça ne le fait pas. Ce qui est préférable, c'est que dans le secteur de développement Web, JavaScript est l'une des langues de vue où un grand groupe d'ingénieurs logiciels possède une expérience de code asynchrone dans. Il est donc naturel d'utiliser JavaScript pour une langue asynchrone côté serveur sur le Web. Secteur de développement depuis que les gens connaissent-ils.
@Raynos alors vous devriez dire que, au lieu de faire une affirmation ridicule que la langue est "naturellement" asynchrone. Cela affaiblit votre argument et diminue votre crédibilité.
@Mark je n'ai pas fait cette réclamation. Generalhenry a fait. J'ai dit que vous pouvez écrire du code asynchrone de manière naturelle.
Je crois que l'un des points forts de Node.js a proclamé que c'est une pertinence comme une WebSockets serveur . Les connexions dans Node.js sont bon marché (car il y a très peu de structure autour de lui), et donc un système unique peut prendre en charge de nombreuses connexions persistantes. P>
Le nœud de puits convient à la maintenance élevée de connexions ouvertes (à d'autres nœuds, services et etc.) en général. p>
Cela devrait vous donner une idée de sa performance par rapport aux autres (+ une discussion comme bonus): pile d'échelle vs nœud.js vs torsadé vs evunlet p>
Le nœud s'adapte également bien au langage de script shell / terminal, bon exemple est: github.com/indexzero/forever p>
et comme la solution côté serveur JavaScript @ Server - rétrécit l'écart entre le frontend du bâtiment (HTML / JS) et le backend (dans le cas actuel Nodejs). p>
Vous pouvez aussi trouver cela utile aussi: Liste des projets, applications et entreprises utilisant NDEJS a> p>
Vous pouvez obtenir beaucoup de nœud.js Utilisez des cas si vous regardez le modules a > page par exemple. Il varie de tonnes de bibliothèques telles que des routeurs, des serveurs de fichiers statiques, des serveurs Web et des serveurs WebSockets vers de nombreux modules de connectivité spécifiques à DB, des bases de données autonomes, des serveurs TCP / IP et des emballages de protocole / de bibliothèque populaires qui attendent toutes pour construire une autre folie comme Ces entreprises ont fait. p>
Je dirais que vous voudriez utiliser nœud.js au cas où vous souhaitez tirer parti du cadre latéral léger, de niveau bas et de serveur rapide qui utilise EFFED IO et propose un ensemble riche de bibliothèques axées sur la communauté open source (vous devriez , ou plutôt, connaître également JavaScript à un certain niveau) afin de créer d'autres modules ou de l'utiliser comme fondation de projet autonome (ou en tant que complément de fonctionnalité spécifique que Node.js peut faire mieux que d'autres solutions). p>
Pour le moment, j'utilise un grand moteur de jeu isométrique écrit dans node.js Chemins de réseau créés, fenêtres, caméras, cartes .. Si vous voulez faire un MMO pour des millions de ppl .. alors node.js peut être une option. P>
Toute application de site Web. Parce que son éventuellement io & c'est JS sur le serveur et le client.
L'accent semble être des sites Web interactifs avec le côté serveur généré par HTML dynamique.
@Swiss: Alors, comme IIS, ou Apache, ou à peu près n'importe quel serveur HTTP?
@ Dark Pas tout à fait la même chose, car vous pouvez faire plus que des sites Web d'hôte avec elle, mais cela semble être le principal objectif de nœud.js.
@Swiss: Vous pouvez faire plus que des "sites Web hôtes" avec la plupart des serveurs HTTP. Cela semble toutefois être l'utilisation la plus courante pour eux.
@Mark Les serveurs HTTP ne sont pas vraiment montés pour héberger des services non http, mais nœud.js est. Le type de service principal Node.js semble se concentrer sur cependant est le service HTTP.