Maison >interface Web >Questions et réponses frontales >Quelles sont les fonctionnalités de node.js

Quelles sont les fonctionnalités de node.js

青灯夜游
青灯夜游original
2022-07-18 17:56:434180parcourir

nodejs a trois caractéristiques : 1. Côté serveur ; Nodejs s'exécute côté serveur et fournit des services d'environnement pour l'environnement d'exécution de Javascript ; 2. Asynchrone non bloquant ; Nodejs adopte un mécanisme d'E/S non bloquant, qui ne provoquera aucun blocage lors de l'exécution d'opérations d'E/S. 3. Basé sur les événements : lorsqu'une nouvelle demande arrive, la demande est placée dans une file d'attente d'événements, puis une boucle est utilisée pour détecter les changements d'état des événements dans la file d'attente. Si un événement avec un changement d'état est détecté, exécutez-le. Le code de traitement correspondant à cet événement.

Quelles sont les fonctionnalités de node.js

L'environnement d'exploitation de ce tutoriel : système Windows 7, nodejs version 16, ordinateur DELL G3.

Qu'est-ce que Node.js ?

Node.js est un environnement d'exécution JavaScript open source et multiplateforme, ou en d'autres termes, une plateforme.

Exécutez le moteur JavaScript V8 (le cœur de Google Chrome) en dehors du navigateur, en utilisant des technologies telles que des modèles d'entrée et de sortie pilotés par événements, non bloquants et asynchrones pour améliorer les performances.

On peut comprendre que Node.js est un environnement d'exécution JavaScript côté serveur, non bloquant, piloté par les événements.

Comme décrit ci-dessus, il n'est pas difficile de conclure que Node.js possède trois caractéristiques : côté serveur, E/S non bloquantes et piloté par les événements. Ensuite, nous analysons les trois fonctionnalités :

  • ① Côté serveur : Littéralement, Node.js s'exécute côté serveur et fournit des services environnementaux pour l'environnement d'exécution de Javascript.

  • ② Asynchrone non bloquant : Node.js adopte un mécanisme d'E/S non bloquant, qui ne provoquera aucun blocage lors de l'exécution des opérations d'E/S. Une fois terminée, l'exécution de l'opération sera notifiée dans le formulaire. du temps.

    Par exemple, une fois le code qui accède à la base de données exécuté, le code suivant sera exécuté immédiatement et le code de traitement du résultat de retour de la base de données est placé dans la fonction de rappel, améliorant ainsi l'efficacité d'exécution du programme.

  • ③ Piloté par les événements : piloté par les événements signifie que lorsqu'une nouvelle demande arrive, la demande sera placée dans une file d'attente d'événements, puis une boucle est utilisée pour détecter les changements d'état des événements dans la file d'attente en cas de changement d'état. est un événement détecté, puis exécutez le code de traitement correspondant à l'événement, qui est généralement une fonction de rappel

    Par exemple, en lisant un fichier, une fois le fichier lu, l'état correspondant sera déclenché, puis traité via la fonction de rappel correspondante

Extension des connaissances :

node.js est un service monothread (JS est à l'origine monothread côté navigateur et côté serveur). En même temps, il possède le plus grand écosystème de bibliothèques open source au monde : npm.

Quels sont les avantages et les inconvénients de Node.js ?

> Avantages

  • Meilleures performances dans la gestion des scénarios à haute concurrence

  • Convient aux applications gourmandes en E/S, la valeur est que lorsque l'application s'exécute à la limite, l'utilisation du processeur est encore relativement faible, la plupart du temps est consacré aux opérations de lecture et d'écriture d'E/S sur la mémoire du disque dur

> convient aux applications gourmandes en CPU

Prend uniquement en charge le processeur monocœur et ne peut pas utiliser pleinement le CPU
  • Faible fiabilité Une fois qu'un certain lien du code tombe en panne, l'ensemble du système s'effondre.
  • Que peut faire Node.js ?

Quelles sont les fonctionnalités de node.js

Fournir des données au navigateur pour affichageEnregistrer les données soumises par l'utilisateur

Statistiques et analyse des données
  • Système de modules Node.js

dans Node.js ;<br> Dans <code>Node.js, plusieurs JavaScriptrequire method. /code> fichier de script ;
require ne peut être chargé qu'en exécutant le code qu'il contient. Puisque les fichiers sont dans la portée du module, il n'y aura pas de problème de pollution ;

. Le module est complètement fermé

Node.js 中没有全局作用域的概念;
Node.js 中,只能通过 require 方法来加载执行多个 JavaScript 脚本文件;
require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题;

  • 模块完全是封闭的

  • 外部无法访问内部

  • 内部也无法访问外部

模块作用域虽然可以带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题。
但是某些情况下,模块与模块是需要进行通信的。在每个模块中,都提供了一个对象:‘exports’,该对象默认是一个空对象。
在使用过程中,需要被外部访问使用的成员手动的挂载到 ’exports‘ 接口对象中,
然后谁来 ’require‘ 这个模块,谁就可以得到模块内部的 exports 接口对象。

核心模块

核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如:

  • fsL'extérieur ne peut pas accéder à l'intérieur

    🎜🎜🎜L'intérieur ne peut pas accéder à l'extérieur🎜🎜🎜🎜Bien que la portée du module puisse apporter certains avantages, plusieurs fichiers peuvent être chargés et exécutés, et la dénomination des variables les conflits peuvent être complètement évités, problème de pollution.
    Cependant, dans certains cas, les modules doivent communiquer entre eux. Dans chaque module, un objet est fourni : 'exports', qui est un objet vide par défaut.
    Pendant l'utilisation, les membres qui doivent être accessibles en externe sont montés manuellement dans l'objet d'interface 'exports'
    Ensuite, qui va 'require' >'. Avec ce module, n'importe qui peut obtenir l'objet d'interface exports à l'intérieur du module. 🎜🎜🎜Modules principaux🎜🎜🎜Les modules principaux sont des modules nommés fournis par Node. Ils ont tous leurs propres identifiants de nom spéciaux, tels que : 🎜🎜🎜🎜fs : module d'opération de fichier🎜.
  • http : module de création de services réseau http:网络服务构建模块

  • os:操作系统信息模块

  • path:路径处理模块

所有核心模块在使用的时候都必须手动的先使用 require 方法来加载,然后才可以使用,例如: ‘var fs = require('fs')’

Node.js 应用场景

借助Nodejs的特点和弊端,其应用场景分类如下:

  • 善于I/O,不善于计算。因为Nodejs是一个单线程,如果计算(同步)太多,则会阻塞这个线程;

  • 大量并发的I/O,应用程序内部并不需要进行非常复杂的处理;

  • websocket 配合,开发长连接的实时交互应用程序,即:实时通讯 ;

具体场景可以表现为如下:

① 用户表单收集系统、后台管理系统、实时交互系统、考试系统、联网软件、高并发量的web应用程序;

② 基于web、canvas等多人联网游戏;

③ 基于 web 的多人实时聊天客户端、聊天室、图文直播;

④ 单页面浏览器应用程序;

⑤操作数据库、为前端和移动端提供基于json的API;

其实,Node.js

os : module d'informations sur le système d'exploitation

🎜🎜path : module de traitement des chemins🎜 🎜🎜Tous les modules de base doivent être chargés manuellement à l'aide de la méthode require avant de pouvoir être utilisés, par exemple : 'var fs = require('fs' )'🎜🎜Scénarios d'application Node.js🎜🎜En utilisant les caractéristiques et les inconvénients de Nodejs, ses scénarios d'application sont classés comme suit : 🎜
    🎜🎜Bon en E/S mais pas bon en calcul. Parce que Nodejs est un seul thread, s'il y a trop de calculs (synchronisation), ce thread sera bloqué 🎜🎜🎜🎜Un grand nombre d'E/S simultanées ne nécessite pas de traitement très complexe à l'intérieur du application ; 🎜🎜🎜🎜 coopère avec websocket pour développer des applications interactives en temps réel connectées de longue date, c'est-à-dire : une communication en temps réel 🎜🎜
🎜Le un scénario spécifique peut être exprimé comme suit :🎜🎜① Système de collecte de formulaires utilisateur, système de gestion d'arrière-plan, système d'interaction en temps réel, système d'examen, logiciel de mise en réseau, applications Web à haute concurrence 🎜🎜② Basé sur web, canvas et autres jeux en ligne multi-joueurs ; 🎜🎜③ Client de chat en temps réel multi-personnes, salon de discussion, diffusion graphique en direct basé sur <code>web ; 🎜🎜④ Application de navigateur d'une seule page ; 🎜⑤ Base de données d'exploitation, fournie pour les terminaux frontaux et mobiles API basée sur json ; 🎜🎜En fait, Node.js peut réaliser presque toutes les applications, mais ce qu'il faut considérer est de savoir si le scénario actuel est adapté à l'utilisation de Node.js, et si l'utilisation de Node.js est la "solution optimale" ", les problèmes de performances doivent être pris en compte. 🎜🎜Pour plus de connaissances sur les nœuds, veuillez visiter : 🎜tutoriel Nodejs🎜 ! 🎜

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