Maison > interface Web > js tutoriel > 5 ajustements de performances faciles pour Node.js Express

5 ajustements de performances faciles pour Node.js Express

Christopher Nolan
Libérer: 2025-02-19 09:06:11
original
576 Les gens l'ont consulté

5 Easy Performance Tweaks for Node.js Express

Points clés

  • Le passage au mode de production peut considérablement améliorer les performances des applications express, car le mode de production élimine les tâches de trace de journalisation et d'exception en mode de développement.
  • Activer la compression GZIP dans Express 4.x peut réduire la charge HTTP et améliorer les performances. Cela peut être fait en installant le module de compression et en l'utilisant comme première fonction middleware.
  • La suppression du middleware inutile, en considérant l'utilisation d'un moteur de modèle plus simple, et la mise en cache efficace des variables communes peut encore optimiser les performances des applications express. Des outils de construction tels que Gulp peuvent être utilisés pour comprimer et fusionner les modèles HTML, les fichiers CSS et JavaScript, et les variables de session doivent être limitées pour éviter les problèmes de performances liés à la mémoire.

Node.js a complètement changé le développement Web, et le cadre express a apporté une contribution indélébile. Express n'est peut-être pas l'option de serveur la plus rapide ou la plus avancée, mais c'est presque certainement la plus utilisée, avec plus de 3 millions de téléchargements par mois. Si vous ne faites rien, Node.js et Express fonctionneront également très rapidement. Cependant, il existe des moyens faciles de faire fonctionner Express 4.x plus rapidement ...

  1. Passer en mode de production

Express peut être exécuté en plusieurs modes. Par défaut, il suppose que le mode de développement, qui fournit des traces de pile d'exception et d'autres tâches de journalisation. Il existe également un mode de débogage qui enregistre les messages à la console, par exemple:

<code>DEBUG=express:* node ./app.js</code>
Copier après la connexion
Copier après la connexion

Sur votre serveur en direct, vous pouvez améliorer considérablement les performances en passant en mode de production. Cela peut être fait en définissant la variable d'environnement Node_env à la production. Il peut être défini dans la session actuelle de Windows avant de démarrer l'application Express:

<code>set NODE_ENV=production</code>
Copier après la connexion
Copier après la connexion

ou mac / linux:

<code>export NODE_ENV=production</code>
Copier après la connexion
Copier après la connexion

Les utilisateurs de Linux peuvent également définir Node_env dans une ligne au démarrage:

<code>NODE_ENV=production node ./app.js</code>
Copier après la connexion
Copier après la connexion

Idéalement, vous devez configurer votre environnement en ajoutant <code>export NODE_ENV=production</code> à votre ~/.bash_profile ou au script de démarrage correspondant.

  1. Activer gzip

Express 4.x fournit le moins de fonctionnalités disponibles qui peuvent être améliorées avec le middleware. Une caractéristique manquante moins évidente est la compression GZIP, ce qui réduit la charge HTTP afin que le navigateur puisse l'étendre lorsqu'il reçoit. Pour ajouter GZIP, utilisez NPM pour installer le module de compression:

<code>npm install compression --save</code>
Copier après la connexion
Copier après la connexion

(Selon votre configuration, vous devrez peut-être utiliser Sudo sur Mac / Linux - il existe de nombreuses façons de résoudre ce problème.) Dans votre fichier de démarrage d'application principal, incluez le module de compression:

<code>var compression = require('compression');</code>
Copier après la connexion

puis installez-le comme première fonction middleware (avant les autres méthodes d'express .User):

<code>DEBUG=express:* node ./app.js</code>
Copier après la connexion
Copier après la connexion
  1. supprimer le middleware inutile

Si vous avez généré une application pré-construite à l'aide d'un générateur express ou de procédures similaires, supprimez les modules de middleware que vous n'avez pas utilisés. Par exemple, si vous n'utilisez pas de cookies, vous pouvez supprimer le module de cookie-parser ou utiliser req.cookies et res.cookies pour implémenter une alternative plus simple. En mode de production, certains processus peuvent être supprimés, tels que la sortie de débogage, par exemple:

<code>set NODE_ENV=production</code>
Copier après la connexion
Copier après la connexion

En d'autres termes, il est préférable de continuer à servir. Le navigateur demande fréquemment le fichier favicon.ico et le module peut améliorer la mise en cache.

  1. Envisagez d'utiliser un moteur de modèle plus simple

Jade est le moteur de modèle par défaut pour de nombreuses installations express, et c'est un bon choix. Cependant, si vous êtes heureux d'écrire votre propre HTML et que vous avez uniquement besoin d'interpolation et d'évaluation de base, envisagez d'utiliser une alternative légère, telle que DOT, qui peut être ajoutée comme middleware express à l'aide du module express-dot-moteur. Alternativement, vous pouvez contourner le moteur de modèle pour une réponse plus simple, telle que:

<code>export NODE_ENV=production</code>
Copier après la connexion
Copier après la connexion

Assurez-vous toujours que la mise en cache de vue est activée, quel que soit le moteur de modèle que vous utilisez:

<code>NODE_ENV=production node ./app.js</code>
Copier après la connexion
Copier après la connexion
  1. N'oubliez pas le cache!

Contrairement à la plupart des applications basées sur le serveur, l'application Node.js s'exécute en permanence. Ainsi, vous pouvez définir des variables communes comme les objets de connexion de la base de données une fois et les réutiliser lors de chaque demande pour chaque utilisateur. Ce concept peut être étendu au besoin. D'une manière générale, plus vous pouvez cacher les éléments les plus courants, meilleur est les performances. Par exemple, supposons que votre application CMS basée sur Express affiche des liens vers vos cinq derniers articles sur la page d'accueil. La liste peut être générée et stockée dans une variable et n'est mise à jour que lorsque de nouveaux articles sont publiés.

Conseils supplémentaires supplémentaires

En voulez-vous plus? …

  • Envisagez d'utiliser Nginx pour servir le contenu statique et réduire la charge sur Node.js et Express.
  • Utilisez des outils de construction tels que Gulp pour compresser et fusionner vos modèles HTML, CSS et vos fichiers JavaScript.
  • Limitez l'utilisation des variables de session. Les données de session utilisateur sont généralement stockées en mémoire, ce qui peut entraîner des problèmes de performances à mesure que l'utilisation augmente. Envisagez d'utiliser uniquement des ID, puis d'obtenir des informations utilisateur à partir de la base de données pendant la demande.
  • Augmentez le nombre maximum de prises HTTP de cinq à des nombres plus élevés, par exemple:
<code>npm install compression --save</code>
Copier après la connexion
Copier après la connexion
  • Si possible, appelez des séquences d'opérations de blocage au lieu de séquentiellement.
  • Évitez d'utiliser des appels de blocage synchrones dans tout sauf l'initialisation de l'application.
  • Notez toujours que le code s'exécute pour un utilisateur de blocs de code de code pour l'autre utilisateur.

Avez-vous d'autres conseils de performances pour Node.js ou Express? J'adorerais les entendre dans les commentaires.

(Le chapitre sur les FAQ sur le réglage des performances de Node.js doit être ajouté ici, le même contenu que celui prévu dans le texte d'entrée)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal