Maison > interface Web > js tutoriel > Tutoriel de démarrage de Node.js

Tutoriel de démarrage de Node.js

巴扎黑
Libérer: 2017-08-22 17:01:19
original
1483 Les gens l'ont consulté

Node.js est une plate-forme construite sur le runtime JavaScript Chrome. Ensuite, je partagerai avec vous la préquelle pour démarrer avec node.js à travers cet article. Les amis intéressés devraient jeter un œil ensemble

1 Qu'est-ce que NodeJS<.>

En termes simples, Node.js est du JavaScript exécuté côté serveur.

Node.js est une plate-forme construite sur le runtime JavaScript Chrome.

Node.js est un environnement JavaScript côté serveur d'E/S piloté par événements, basé sur le moteur V8 de Google (l'environnement d'exécution JavaScript utilisé par le navigateur Chrome de Google),

Le moteur V8 exécute Javascript Très rapide et très bonnes performances.

2. Pourquoi choisir NodeJS

Si vous êtes un programmeur front-end, vous ne connaissez pas les langages de programmation dynamiques comme PHP , Python ou Ruby , et que vous souhaitez ensuite créer votre propre service, alors Node.js est un très bon choix.

Node.js est JavaScript exécuté côté serveur. Si vous êtes familier avec Javascript, vous apprendrez facilement Node.js.

Bien sûr, si vous êtes un programmeur back-end et que vous souhaitez déployer des services hautes performances, alors apprendre Node.js est également un très bon choix.

3. Caractéristiques de NodeJS

Jetons d'abord un coup d'œil à l'introduction sur le site officiel de NodeJS :

Node .js est une plate-forme construite sur le moteur d'exécution JavaScript de Chrome pour créer facilement des applications réseau rapides et évolutives. Node.js utilise un modèle d'E/S non bloquant et piloté par les événements qui le rend léger et efficace, parfait pour les données en temps réel gourmandes. applications qui s'exécutent sur des appareils distribués.

 

Ses caractéristiques sont :

 1. Il s'agit d'un environnement d'exécution Javascript

 2 . Dépend du moteur Chrome V8 pour l'interprétation du code

 3. Piloté par les événements

 4. E/S non bloquantes

 5. Léger, évolutif, adapté à un usage réel. applications d'interaction de données temporelles

 6. Processus unique, thread unique

Modèle asynchrone piloté par les événements

Nous devons également lancer une demande et attendre la réponse côté serveur mais ce qui est différent de l'exemple bancaire, c'est que cette fois nous avons obtenu un numéro après avoir commandé le repas <.>

Après avoir obtenu le numéro, nous attendrons souvent chez nous, et les demandes derrière nous continueront à être traitées. Nous prenons également un numéro et attendons de côté, et la réceptionniste peut continuer à le traiter.

Lorsque le repas est commandé, le numéro sera appelé. Nous obtiendrons notre propre repas et effectuerons le traitement ultérieur (manger)

Cette action d'appel du numéro est appelée rappel dans NodeJS Can. continuer à exécuter la logique suivante (manger) une fois l'événement (cuisson, E/S) terminé,

Cela reflète les fonctionnalités remarquables de NodeJS, mécanisme asynchrone, piloté par les événements

L'ensemble processus Il n'est pas nécessaire de bloquer la connexion des nouveaux utilisateurs (commande de nourriture), et il n'est pas nécessaire de maintenir la connexion entre les utilisateurs qui ont déjà commandé de la nourriture et le chef

Node.Js utilise un processus événementiel modèle Lorsque le serveur Web reçoit une requête, il la ferme, puis la traite, puis répond à la requête Web suivante. Lorsque la requête est terminée, elle est remise dans la file d'attente de traitement, et lorsque la tête de file d'attente est atteinte, le résultat est renvoyé à l'utilisateur. Ce modèle est très efficace et évolutif car le serveur Web accepte toujours les requêtes sans attendre aucune opération de lecture ou d'écriture. (Cela est également appelé IO non bloquant ou IO piloté par événement)

Sur la base de ce mécanisme, en théorie, NodeJS peut répondre aux utilisateurs qui demandent des connexions les uns après les autres, donc NodeJS peut prendre en charge plus que Java et PHP programmes. Concurrence plus élevée

Bien que le maintien de la file d'attente des événements nécessite également des coûts, et comme NodeJS est monothread, plus la file d'attente des événements est longue, plus il faut de temps pour obtenir une réponse, et le degré de concurrence sera toujours le même. insuffisant

 

Pour résumer comment NodeJS résout le problème des connexions concurrentes : Changer la façon de se connecter au serveur Chaque connexion émet un processus. dans le moteur NodeJS. Les événements (événements) exécutés dans la file d'attente des événements sont placés dans la file d'attente des événements,

Au lieu de générer un nouveau thread de système d'exploitation pour chaque connexion (et de lui allouer de la mémoire de support)

Blocage des E/SUn autre problème que NodeJS résout est le blocage des E/S. Regardez ce scénario commercial : vous devez extraire des données de plusieurs sources de données. puis effectuez le traitement

(1) Acquisition en série de données, c'est notre solution générale, prenez PHP comme exemple

Si vous obtenez des opérations de profil et de chronologie nécessitent des opérations séparées 1S, puis l'acquisition en série nécessite 2S

(2) E/S non bloquantes NodeJS, émettant/écoutant des événements pour contrôler le processus d'exécution

Lorsque NodeJS rencontre un événement d'E/S, il créera un thread à exécuter, puis le thread principal continuera à s'exécuter

Par conséquent, l'action de. la prise de profil déclenche un Pour les événements d'E/S, l'action d'obtention de la chronologie sera exécutée immédiatement

Les deux actions sont exécutées en parallèle si chacune prend 1S, alors le temps total est de 1S

<.> Leurs opérations d'E/S Une fois l'exécution terminée, un événement, un profil et une chronologie sont émis,

Une fois que l'agent d'événement l'a reçu, il continue d'exécuter la logique suivante. C'est la fonctionnalité de NodeJS non. -blocage des E/S

Pour résumer :

 Java et PHP ont également des moyens d'implémenter des requêtes parallèles (sous-threads), mais NodeJS peut le faire très naturellement grâce à des fonctions de rappel (Callback) et mécanismes asynchrones

4. Avantages et inconvénients de NodeJS

Avantages :

1. Concurrence élevée (le plus avantage important)

2. Convient aux applications gourmandes en E/S

Inconvénients :

1. Ne convient pas aux applications gourmandes en CPU ; les applications apportées à Node sont : en raison du thread unique de JavaScript, s'il y a des calculs de longue durée (comme une grande boucle), la tranche de temps CPU ne pourra pas être libérée, rendant les E/S ultérieures impossibles à être libérées. initié ;

Solution : Décomposer les grandes tâches informatiques en plusieurs petites tâches afin que l'informatique puisse être libérée en temps opportun sans bloquer l'initiation des appels d'E/S

2. Ne prend en charge que les appels simples ; CPU principal et ne peut pas utiliser pleinement le CPU

3. Faible fiabilité Une fois qu'un certain lien du code tombe en panne, l'ensemble du système s'effondre

Raison : processus unique, thread unique

Solution : (1) Proxy inverse Nnigx, équilibrage de charge, ouverture de plusieurs processus, liaison de plusieurs ports

(2 ) Ouvrez plusieurs processus pour écouter le même port et utiliser le module de cluster

4. La qualité de la bibliothèque de composants open source est inégale, mise à jour rapidement et incompatible vers le bas

5. Le débogage est peu pratique et erroné Aucune trace de pile

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal