Node.js est une plate-forme open source pour l'écriture d'applications JavaScript côté serveur. Elle est efficace, légère, multiplateforme et hautement évolutive, ce qui la rend populaire parmi les développeurs. Cependant, lors de l'utilisation de Node.js pour créer des services, il est parfois nécessaire de fermer ou de libérer le numéro de port occupé, ce qui nous oblige à maîtriser les compétences correspondantes.
Cet article explique comment désactiver les numéros de port dans Node.js. Avant de commencer, passons en revue quelques principes de base de la gestion des requêtes réseau dans Node.js.
Dans Node.js, nous pouvons gérer les requêtes réseau via le module http
, qui fournit Il existe deux API de base : http.createServer()
et http.request()
. http
模块来处理网络请求,该模块提供了两个核心的 API:http.createServer()
和http.request()
。
http.createServer()
用于创建一个 HTTP 服务器,并指定当有客户端请求该服务器时所执行的回调函数,在回调函数中我们可以处理请求并返回相应的响应;而http.request()
则是用于发起网络请求,我们可通过该 API 向另一个服务器发送请求,并处理其响应。
以下是一个简单的 HTTP 服务器示例:
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<h1>Hello World</h1>'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
在上述示例中,我们创建了一个 HTTP 服务器,并监听在端口号为 3000 的地址上。当客户端请求该服务器时,我们通过 res.writeHead()
设置响应头,使用 res.end()
将内容作为响应体发送给客户端。
当我们的服务不再需要处理网络请求时,或者需要将其迁移到其他端口号上时,就需要关闭或者释放当前端口号。那么如何在 Node.js 中关闭端口号呢?
在 Node.js 中,我们可以通过http.Server.close()
方法来关闭服务器。这个方法将停止服务器并释放占用的端口号。以下是一个示例:
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<h1>Hello World</h1>'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); }); // 关闭服务 setTimeout(() => { server.close(() => { console.log('Server closed.'); }); }, 5000);
在上述示例中,我们在服务启动后 5 秒钟内关闭了服务器。为了实现这一点,我们使用了setTimeout()
将关闭操作推迟了 5 秒;然后在回调函数中使用server.close()
http.createServer()
est utilisé pour créer un serveur HTTP et spécifier la fonction de rappel à exécuter lorsqu'un client demande au serveur Dans la fonction de rappel, nous pouvons traiter la requête. et renvoie la réponse correspondante ; et http.request()
est utilisé pour lancer des requêtes réseau. Nous pouvons envoyer une requête à un autre serveur via cette API et traiter sa réponse. Ce qui suit est un exemple simple de serveur HTTP : res.writeHead()
et utilisons res.end()
pour envoyer le contenu au client comme corps de réponse. . Fermez le numéro de port Node.js#🎜🎜##🎜🎜#Lorsque notre service n'a plus besoin de gérer les requêtes réseau, ou lorsqu'il doit être migré vers d'autres numéros de port, il doit l'être fermé ou Libérez le numéro de port actuel. Alors, comment désactiver les numéros de port dans Node.js ? #🎜🎜##🎜🎜#Dans Node.js, nous pouvons fermer le serveur via la méthode http.Server.close()
. Cette méthode arrêtera le serveur et libérera le numéro de port occupé. Voici un exemple : #🎜🎜#rrreee#🎜🎜#Dans l'exemple ci-dessus, nous arrêtons le serveur dans les 5 secondes suivant le démarrage du service. Pour y parvenir, nous utilisons setTimeout()
pour retarder l'opération d'arrêt de 5 secondes ; puis utilisons server.close()
dans la fonction de rappel pour fermer le serveur et nous connecter. au message de sortie de la console. #🎜🎜##🎜🎜#Il convient de noter que lors de l'arrêt du serveur, nous devons attendre que toutes les connexions en attente soient traitées avant d'arrêter le serveur pour garantir que tous les clients peuvent se déconnecter avec succès. #🎜🎜##🎜🎜#Résumé#🎜🎜##🎜🎜#Cet article explique comment fermer le numéro de port de service et libérer les ressources correspondantes dans Node.js, réalisant ainsi l'arrêt et l'arrêt des services réseau. Dans le développement réel, nous devrions raisonnablement utiliser le module de traitement réseau dans Node.js en fonction des besoins de l'entreprise afin d'améliorer les performances et l'évolutivité du programme. #🎜🎜#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!