Maison  >  Article  >  interface Web  >  Comment arrêter gracieusement une application Node.js

Comment arrêter gracieusement une application Node.js

PHPz
PHPzoriginal
2023-04-17 15:08:571130parcourir

Node.js est un environnement d'exécution multiplateforme open source. Il permet aux développeurs Web en herbe de créer des applications efficaces à l’aide d’un simple code JavaScript. Mais lors du développement, vous devez réfléchir à la manière d'arrêter correctement votre application Node.js. Dans cet article, nous verrons comment arrêter gracieusement le code Node.js.

  1. Raccourci Ctrl+C
    Dans une fenêtre de terminal, appuyer sur la combinaison de touches Ctrl+C forcera la fermeture de l'application Node.js. Dans les environnements Linux et Unix, cette méthode est la plus rapide et la plus couramment utilisée. Cette combinaison de touches est liée au gestionnaire de processus Node.js et peut être utilisée pour fermer l'application en appuyant sur Ctrl+C.
  2. Gestionnaires de signaux
    Les gestionnaires de signaux de Node.js sont un autre moyen efficace d'arrêter votre code. Cette méthode utilise la méthode on intégrée de l'objet de processus pour écouter les signaux. Lorsqu'un signal est capté, du code peut être écrit pour y répondre. En utilisant cette approche, le signal peut être intercepté et traité, empêchant le gestionnaire de sortie Node.js par défaut de mettre fin à l'application.

Voici un exemple qui montre comment configurer un gestionnaire de signal :

function gracefulShutdown() {
  console.log("Node process stopping...");

  // 停止Web服务器
  server.close(() => console.log("HTTP server stopped"));

  // 关闭数据库连接
  mongoose.connection.close(() => console.log("MongoDB connection closed"));

  // 结束Node进程
  process.exit(0);
}

process.on("SIGTERM", gracefulShutdown);
process.on("SIGINT", gracefulShutdown);

Dans cet extrait de code, lorsque les signaux SIGTERM et SIGINT sont reçus, la fonction gracefulShutdown sera appelée pour effectuer les opérations suivantes :

  • Shut vers le bas du serveur HTTP.
  • Fermez la connexion à la base de données MongoDB.
  • Terminez le processus Node.js.
  1. Méthode Process.exit()
    Dans Node.js, si vous souhaitez quitter complètement l'application, vous pouvez utiliser la méthode process.exit(0). Dans ce cas, l'application se fermera sans donner aucune indication. Mais veuillez noter que cette méthode ne constitue pas un arrêt en douceur.
  2. Utilisation des modules Node et npm
    Les modules Node.js et npm sont spécifiquement conçus pour lancer et gérer des applications Node.js. En utilisant cette méthode, vous devez installer une application Node, qui utilisera le module npm pour gérer le code qui arrête l'application. Cette approche implique généralement un avertissement ou un événement de sortie pour garantir que l'application s'arrête correctement.

Voici un exemple utilisant le module Forever pour Node.js :

var forever = require("forever");

var child = new (forever.Monitor)("app.js", {
  max: 3, //最多重启3次
  silent: true, // 启动应用程序时,不显示输出到控制台的日志
  args: []
});

// 在关闭应用程序之前执行以下操作
child.on("exit", function() {
  console.log("App has stopped");
});

// 启动并监视应用程序
child.start();

Dans cet extrait de code, le module Forever peut lancer et surveiller une application Node.js. Si après quatre tentatives de redémarrage de l'application sans succès, l'application s'arrêtera. Si vous utilisez cette méthode, vous devez arrêter le module toujours à la fin pour vous assurer que tous les processus sur le serveur sont fermés.

Conclusion

Dans le développement d'applications Node.js, arrêter correctement l'application est un enjeu important. L'arrêt progressif d'une application Node.js garantit que les données sont préservées, que toutes les ressources ne sont pas affectées et que le fonctionnement des autres applications n'est pas affecté. Cet article propose quatre méthodes différentes, notamment l'utilisation du raccourci Ctrl + C, la création d'une fonction de traitement du signal, l'utilisation de la méthode process.exit(0) et l'utilisation des modules Node et npm. Vous pouvez choisir la méthode la mieux adaptée à vos besoins pour garantir que votre application Node.js s'arrête correctement.

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:
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