Avez vous entendu parler de Javascript ? Il s’agit d’un langage de script qui n’est disponible que sur les navigateurs Web. Avec l’arrivé de l’application Node.js, Javascript à trouvé un chemin vers les serveurs. Depuis lors, Node a connu une maturité rapide en tant que langage serveur, une notoriété tellement grande que même les grandes entreprises comme Netflix et Paypal l’utilisent.

Si vous connaissez déjà Javascript, cela ne sera pas une surprise si vous pensez un jour créer une application Node.js . Dans cet article, je souhaite partager 20 choses que vous pourriez envisager lors de la création de votre première application Node.js . J’espère que ces quelques points vous aideront.

5 choses à savoir avant de commencer à coder votre première application node.js

application note.js

Avant de vous plonger dans Node, il vaut mieux passer un peu de temps à examiner différents frameworks et technologies qui vous aideront à créer votre application.

1. Choisissez votre cadre serveur

La première décision à prendre en cas de travail avec Node est de sélectionner votre cadre de serveur. Choisir un cadre est similaire à la sélection de Rails (pour Ruby) ou Django (pour Python). Avec Node, vous avez accès à plus de 30 bibliothèques à choisir, y compris Express , Koa et Hapi .

Il peut être intimidant de sélectionner un cadre de serveur si vous n’en avez jamais entendu parler jusqu’à aujourd’hui. Il est difficile de savoir quel est le meilleur et pourquoi vous devriez l’utiliser.

2. Créez-vous une seule application de page ?

Les applications de page unique (SPA) sont des applications Web qui ne représentent q’une seule page HTML. Ensuite, grâce à l’utilisation de JavaScript, le contenu est récupéré, affiché ou caché en fonction de l’endroit où l’utilisateur navigue. Facebook et Redmart comprennent ce genre de SPA.

Les non-SPA (appelons-les des applications traditionnelles), d’autre part, sont des applications qui chargent de nouvelles pages HTML chaque fois qu’un utilisateur navigue vers une URL différente. Ces applications se comportent comme des sites Web. Twitter et Delicious comprennent ce genre d’applications.

S’il s’agit de votre première application, je vous invite à passer par une application traditionnelle, car ces applications sont beaucoup plus facile à créer. Une fois que vous avez suffisamment d’expérience dans le domaine, n’hésitez pas à vous lancer dans les SPA.

3. Sélectionnez votre moteur de modèle

Les moteurs de modèles sont des outils qui vous permettent d’alimenter les variables dans votre code HTML. Lors de la création d’applications, la maîtrise de l’utilisation de modèles de moteurs est un must.

Si vous avez décidé de créer une application traditionnelle, vous pouvez choisir (à nouveau) de nombreux modèles de moteurs , y compris EJS , Nunjucks et Moustache .

Si vous choisissez de créer un SPA, votre choix est à peu près limité au cadre que vous utilisez. Par exemple, React utilise JSX et Angular utilise HTML avec sa propre syntaxe.

4. Choisissez votre routeur

Chaque application comporte un besoin de routeur. Il vous permet de déterminer ce qu’il faut montrer aux utilisateurs lorsqu’ils naviguent vers un URL spécifié. Cela vous permet également de déterminer ce que fait votre application si la méthode de demande HTTP change de GET à POST, PUT ou DEL.

Si vous créez un SPA, le routage s’effectue dans le navigateur au lieu du serveur (c’est pourquoi il n’est pas nécessaire de charger un nouveau HTML).

La plupart des cadres, tels que Express et Angular, ont un routeur intégré que vous pouvez utiliser. Certains frameworks, comme React et Koa, vous permettent de sélectionner un routeur que vous préférez.

5. Sélectionnez votre base de données

Une fois que vous avez terminé de sélectionner le cadre du serveur, le routeur et le moteur de modèle, la prochaine grande décision que vous devez prendre concerne votre base de données.

Choisir une langue de base de données est presque comme décider d’utiliser Node comme langue de votre serveur.

En ce qui concerne les bases de données, vous avez deux types de choix: les bases de données relationnelles ou les bases de données non relationnelles. Les bases de données relationnelles sont communément appelées bases de données SQL. Les plus populaires incluent MySQL et Postgres . D’autre part, les bases de données non relationnelles sont communément appelées bases de données NoSQL; Les plus populaires incluent MongoDB et Redis .

Si vous êtes nouveau, je vous conseille d’utiliser MongoDB car il est le plus facile à apprivoiser.

4 choses à savoir lors de la configuration de votre environnement de développeur

1. Sélectionnez un gestionnaire de paquetages

La première chose dont vous avez besoin lors de la configuration de votre environnement dev est de choisir votre (vos) gestion (s) de dépendance, également appelés gestionnaires de paquets.

Les gestionnaires de paquets sont géniaux pour vous aider à télécharger des bibliothèques dans votre application. Par exemple, vous pouvez télécharger Express juste avec une seule ligne de code au lieu de la télécharger via GitHub.

Cela permet aussi la mise à jour des paquets dès que vous le souhaitez.

Comme vous utilisez Node, vous pouvez utiliser npm en tant que gestionnaire de paquetage pour votre backend.

Pour le frontend, ce n’est pas si simple. Vous pouvez toujours utiliser npm, mais vous devez configurer des outils (voir le point suivant) car les navigateurs ne supportent pas les paquets npm.

2. Sélectionnez un outil de construction

Plus tôt, j’ai mentionné que les paquets npm ne sont pas pris en charge par les navigateurs de manière native. Vous devez passer par des outils avant de pouvoir utiliser npm pour le frontend. Ici, vous avez besoin d’ outils comme Browserify , Webpack ou Rollup .

Si vous souhaitez utiliser de meilleures technologies comme ES6 , Sass ou PostCSS pour vous aider à écrire votre application, il vous est possible également de réfléchir à la manière de compiler ces actifs dans CSS et ES5 ( ce que les navigateurs JavaScript utilisent aujourd’hui).

Voici deux outils de choix:  Gulp et Webpack . Gulp est un outil de construction polyvalent qui vous aide à exécuter toutes sortes de tâches comme celles que j’ai mentionnées ci-dessus. Webpack le fait également de manière unique.

Si vous débutez, Gulp sera certainement plus adapté.

3. Actualisez votre serveur automatiquement

L’une des choses les plus douloureuses concernant Node est que votre serveur ne se met pas automatiquement à jour lorsque vous enregistrez un fichier. Vous devez redémarrer votre serveur grâce aux lignes de commande à chaque changement.

Il existe deux méthodes pour redémarrer votre serveur lorsque vous enregistrez un fichier. La première méthode est d’utiliser Nodemon pour redémarrer l’application entière. Le second consiste à utiliser chokidar pour actualiser le cache requis.

4. Actualisez votre navigateur automatiquement

Envisagez de rafraîchir votre navigateur automatiquement chaque fois que vous modifiez vos modèles, HTML ou CSS.

La meilleure façon de le faire actuellement est d’utiliser le paquet appelé Browsersync .

4 choses à savoir lors du codage de votre application

Une fois que votre environnement de développement est configuré, vous êtes prêt à plonger dans le codage!

1. Sélectionnez une architecture API

Il existe actuellement deux méthodes principales d’API: REST et GraphQL. REST signifie transfert d’état de représentation. Cette norme existe depuis longtemps. GraphQL est une méthode créée par Facebook qui vous permet d’obtenir plusieurs sources de données avec une seule demande.

2. Apprenez à écrire une bonne API REST

Il y a beaucoup de choses à connaître lorsque vous codez votre première application. Il est indispensable d’apprendre à coder une bonne API afin de ne pas avoir de code désordonné.

3. Envisager d’utiliser async afin de gérer les opérations asynchrones

Node est une langue à thread unique. Pour faire face aux opérations asynchrones multiples requises dans un serveur, Node prend par défaut l’utilisation des rappels (fonctions appelées chaque fois qu’une opération est terminée).

4. Déterminer comment authentifier vos utilisateurs

L’authentification est probablement la partie la plus complexe. Il existe deux façons d’authentifier vos utilisateurs.

La première façon est de demander un nom d’utilisateur et un mot de passe. C’est très certainement le plus simple à mettre en oeuvre lorsque vous débutez.

La deuxième façon est de connecter les utilisateurs à un compte tiers (comme Facebook, GitHub ou Twitter). Cette méthode exige que vous utilisiez OAuth2 , un protocole d’authentification qui est incroyablement difficile à comprendre.

Cela est tellement difficile à comprendre et à mettre en oeuvre que cela peut causer des problèmes de sécurité. Si vous n’êtes pas un expert OAuth2, je vous recommande d’utiliser un service appelé Auth0 pour vous aider à créer des identifiants de connexion avec Oauth2.

Après avoir vérifié les informations d’identification de vos utilisateurs (avec nom d’utilisateur et mot de passe ou oauth), vous devez déterminer comment faire afin qu’ils restent connecté pendant l’utilisation de l’application. Là encore, il existe deux méthodes, les sessions et le jeton.

Sessions est une manière plus ancienne et expérimentée d’authentification d’un utilisateur. Les jetons du Web JSON sont une méthode plus récente qui cherche à surmonter certains problèmes d’évolutivité posés par l’authentification par session. L’authentification par session et par jeton est un énorme débat, et je ne pourrai pas les couvrir en détail dans cette publication.

Personnellement, je vous recommande d’utiliser l’authentification basée sur les tokens.

Mise en production de votre application

Maintenant que vous avez fini de créer votre première application, il est temps de la mettre en production.

1. Sélectionnez votre hébergeur

Inutile de dire que vous devez sélectionner un service d’hébergement Web pour votre application. Lorsque vous utilisez Node, vous avez besoin d’un accès root à votre serveur afin que vous puissiez installer vos paquets et exécuter les commandes nécessaires.

Cela signifie que vous avez besoin d’ un serveur privé virtuel ou d’ un serveur dédié. Il vous est possible d’héberger vos applications facilement chez LWS.

2. Devriez-vous utiliser HTTP ou HTTPS ?

Si vos utilisateurs doivent pouvoir s’authentifier, il vous sera indispensable de protéger vos utilisateurs avec HTTPS.

3. Si vous utilisez un réseau de distribution de contenu ?

Un réseau de distribution de contenu (CDN) est une collection de serveurs mondiaux qui met en cache et livre le contenu Web. Ces serveurs permettent de réduire le temps de chargement. IL est indispensable d’en utiliser un pour plus de confort et de rapidité.

Je vous recommande Cloudflare comme CDN, car la configuration est rapide. De plus, Cloudflare est gratuit.

4. Faite fonctionner votre application

A l’heure actuelle, votre application doit être en cours d’exécution, mais il se peut que cette dernière se bloque suite à une erreur.

Dans un environnement de production, les applications doivent pouvoir redémarrer elles-même lorsqu’elles se bloquent suite à une erreur. Pour ce faire, il vous faudra utiliser un outil de gestion de processus comme pm2 afin de redémarrer votre application.

6. Suivi des erreurs avec les journaux de logs

Si votre application redémarre automatiquement, comment est il possible de réparer les erreurs rencontrées ?

La réponse est de visualiser les journaux que PM2 crée automatiquement pour vous.

7. Créer un script de déploiement

Enfin, le déploiement est une activité stressante. Vous souhaitez réduire au minimum ce stress en créant un script de déploiement.

Ce script fait des choses comme:

  • Compiler, minifier et déployer vos actifs
  • Tester votre demande
  • Pousser votre application vers le serveur
  • Mettre à jour le serveur

Pour ce faire, vous devrez peut-être utiliser une combinaison de tâches, de scripts npm et de git post-receive hooks.