Meilleures pratiques de construction d'un site Web en utilisant Node.js

Je me demandais comment on allait développer un site web à partir de zéro avec Node.js. Je comprends comment je pourrais , éventuellement, le faire, mais je suis intéressé par la meilleurs la pratique du design.

J'ai besoin de ce site théorique pour:

  1. faire beaucoup D'AJAX
  2. soyez très simple
  3. être relativement petit
  4. Se connecter à... disons un serveur MySQL

En PHP, construire un assez petit site Web était très simple - j'ai mis up PHP sur Apache et un serveur MySQL, puis faire quelque chose comme:

  • {[1] } qui a connect.php pour se connecter à la base de données, un fichier avec des fonctions communes liées à la base de données et ainsi de suite
  • {[2] } qui avait des trucs comme pied de page.php, en-tête.php, et d'autres choses liées à la mise en page
  • {[3] } pour gérer les actions liées à l'utilisateur

Ensuite, PHP vous permet de créer des pages et d'inclure ces fichiers ensemble pour former un site web - Je pourrais aller quelque chose comme:

<?php
   require_once('inclues/users/user_session.php');
   require_once('inclues/db/connect.php');
   require_once('inclues/design/header.php')
?>

// Other php or html or related content relating to the page

<?php
   require_once('inclues/.../footer.php');
?>

Je me demandais ce qui pourrait être similaire dans Node.js - je suis à la recherche d'un moyen pour accomplir ce qui est comme simple, rapide et simple que possible.

Si la réponse n'est pas simple, j'aimerais une recommandation de Livre, cela ne me dérange pas de lire.

J'aime la programmation basée sur les événements, j'aime vraiment les capacités de JavaScript et je suis vraiment excité par Node.js. Je veux apprendre à développer ce genre de choses avec de la bonne façon dès le début.

79
demandé sur Benjamin Gruenbaum 2012-07-03 17:11:50

1 réponses

Pour commencer avec les mauvaises nouvelles: comme noeud.js est une technique assez jeune, je pense que vous constaterez que le processus de création d'un site web à part entière et de maintenance/exploitation sera très différent de ce à quoi vous êtes actuellement habitué.

Josh3736 ajoute: une Fois que vous comprendre comment Nœud.JS et ses différents paquets (Connect, Express) fonctionnent, j'ai trouvé que vous pouvez développer de nouveaux sites très rapidement.

Les bords rugueux qui existent actuellement dans le noeud.js, combiné avec le rythme rapide de son développement et tous les modules impliqués peuvent compliquer les choses, et rendre les choses moins simples, rapides et directes que vous le souhaitez.

Ayant cela à l'écart, voici la bonne nouvelle:

Le Gestionnaire de paquets de Noeud , npm a beaucoup de bons outils et frameworks pour développer le noeud.la fonctionnalité bare bones DE js, le rendant approprié pour créer un serveur web.

Plus particulièrement serait le cadre Express {[6] } qui contient presque tout ce dont vous avez besoin pour exécuter un serveur web (y compris les cookies, les sessions et le routage de chemin). En outre, Express prend en charge les partiels, qui prennent soin de votre en-tête et pied de page comprend.

Express est construit au-dessus deSencha Connect . Les Cookies et les sessions sont en fait alimentés par Connect. Express est ce qui simplifie votre routage et gère les vues / partiels. Donc, si vous n'avez pas besoin de toutes les cloches et de sifflets qui viennent avec Express, vous pouvez simplement opter pour Connect à la place.

Si vous le souhaitez pour utiliser des modèles pour ces partiels, le Jade Template Engine {[6] } peut accélérer les choses pour vous. Bien que Josh3736 souligne que Jade est lent et que les espaces sont significatifs. Un aperçu plus complet peut être trouvé ici , qui comprend son favori, doT. (J'utilise personnellement Node.JS pour socket.io applications basées uniquement, donc il est une meilleure source que moi quand il s'agit de templating).

Vous pouvez vous connecter à MySQL à partir du nœud.js à l'aide de la db-mysql module, mais si vous n'en avez pas besoin parce que vous accédez à des données connectées à un système déjà présent, je vous conseille d'utiliser un plus... approche 'moderne', qui consiste à utiliser une base de données NoSQL comme la plupart des nœuds.les projets js semblent faire. MongoDB par Mangouste est le moyen populaire d'aller.

Ou s'il ne s'agit que de stocker des objets qui vous intéressent, optez simplement pour Redis à la place (ce dont vous aurez probablement besoin à un moment donné de toute façon).

Une fois votre site web terminé, vous devrez le déployer et vous assurer qu'il continue à fonctionner. Il existe de nombreuses façons de le faire, comme l'utilisation de la prise en charge intégrée du cluster ou l'utilisation de la fonctionnalité la plus conviviale forever module npm. voir cette question SO de la mienne pour plus d'informations.

Conclusion:

Ce que j'essaie d'obtenir est ceci:

Demander Quelle est la meilleure pratique pour construire un site Web dans Node.js est, est environ le même que demande le la meilleure façon de construire un site Web en PHP est: 100 développeurs vous donneront 100 réponses différentes.

NPM est béni avec une variété d'excellents frameworks qui simplifient grandement beaucoup de tâches impliquées, mais tout est basé sur la préférence laquelle est la voie à suivre vraiment.

Comme je l'ai dit, noeud.js est encore une technique assez jeune, donc aucun des frameworks ou des outils supplémentaires n'a encore émergé comme 'defacto standard'; pour la plupart des choses que vous essayez de faire, il y a probablement plusieurs alternatives, et attendez-vous à ce que votre code se casse lors de l'utilisation de la plupart d'entre eux lors des mises à jour, car le développement du nœud.js lui-même et la plupart des modules est rapide. Vous aurez à suivre.

Mettre tout cela ensemble :

Comme je l'ai dit, ma principale utilisation de production pour Node.js est d'être en mesure d'utiliser socket.io, donc je n'ai pas de bonne production exemples présents (Et comme je suis sur le point de partir en vacances bien méritées, je n'ai pas le temps d'en faire un soit). Il y a quelques de bons exemples cependant:

Encore une fois, le chemin à parcourir (et par la suite l'exemple à suivre) dépend grandement de vos objectifs ultimes et des techniques choisies, mais heureusement, il y a beaucoup de ressources disponibles pour tous les choix disponibles. La plupart des modules utilisent des dépôts GitHub bien documentés et incluent des exemples en combinaison avec les modules les plus populaires (voir le dir /examples/ qui semble être présent dans la plupart des dépôts).

Bonne chance! (Et merci à Josh3736 pour corriger mes erreurs.)

181
répondu Rem.co 2017-05-23 12:02:51