Version JavaScript Node.js 13.0 côté serveur

Disponible libération Noeud.js 13.0, plates-formes pour exécuter des applications réseau en JavaScript. Dans le même temps, la stabilisation de la branche précédente de Node.js 12.x a été achevée, qui a été transférée dans la catégorie des versions de support à long terme, dont les mises à jour sont publiées pour 4 ans. Le support de la branche LTS précédente de Node.js 10.0 durera jusqu'en avril 2021, et le support de la dernière branche LTS 8.0 jusqu'en janvier 2020.

principal améliorations:

  • Moteur V8 mis à jour vers la version 7.8, qui utilise de nouvelles techniques d'optimisation des performances, améliore la déstructuration des objets, réduit la consommation de mémoire et réduit le temps de préparation pour l'exécution de WebAssembly ;
  • La prise en charge complète de l'internationalisation et de l'Unicode basé sur la bibliothèque est activée par défaut ICU (International Components for Unicode), qui permet aux développeurs d'écrire du code favorable travailler avec différentes langues et paramètres régionaux. Le module full-icu est désormais installé par défaut ;
  • API stabilisée Discussions de travailleurs, en permettant créer des boucles d'événements multithreads. L'implémentation est basée sur le module worker_threads, qui vous permet d'exécuter du code JavaScript dans plusieurs threads parallèles. La prise en charge stable de l'API Workers Threads a également été rétroportée vers la branche LTS de Node.js 12.x ;
  • Les exigences relatives aux plates-formes ont été augmentées. A assembler maintenant requis au moins macOS 10.11 (nécessite Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008 ;
  • Prise en charge améliorée de Python 3. Si le système dispose à la fois de Python 2 et de Python 3, Python 2 est toujours utilisé, mais la possibilité de construire lorsque seul Python 3 est installé sur le système a été ajoutée ;
  • L'ancienne implémentation de l'analyseur HTTP (« —http-parser=legacy ») a été supprimée. Appels et propriétés supprimés ou obsolètes FSWatcher.prototype.start(), ChildProcess._channel, méthode open() dans les objets ReadStream et WriteStream, request.connection, Response.connection, module.createRequireFromPath();
  • Suivant sortit de mise à jour 13.0.1, qui a rapidement corrigé plusieurs bugs. En particulier, le problème avec npm 6.12.0 affichant un avertissement concernant l'utilisation d'une version non prise en charge a été résolu.

Rappelons que la plateforme Node.js peut être utilisée à la fois pour le support côté serveur d'applications Web et pour la création de programmes réseau client et serveur ordinaires. Pour étendre les fonctionnalités des applications pour Node.js, un grand nombre de collection de modules, dans lequel vous pouvez trouver des modules avec l'implémentation de serveurs et clients HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, des modules d'intégration avec divers frameworks web, des gestionnaires WebSocket et Ajax, des connecteurs aux SGBD (MySQL, PostgreSQL, SQLite , MongoDB ), moteurs de modèles, moteurs CSS, implémentations d'algorithmes cryptographiques et de systèmes d'autorisation (OAuth), analyseurs XML.

Pour gérer un grand nombre de requêtes parallèles, Node.js utilise un modèle d'exécution de code asynchrone basé sur le traitement des événements non bloquants et la définition de gestionnaires de rappel. Les méthodes prises en charge pour le multiplexage des connexions incluent epoll, kqueue, /dev/poll et select. La bibliothèque est utilisée pour multiplexer les connexions libuv, qui est une superstructure sur Libev sur les systèmes Unix et via IOCP sous Windows. Une bibliothèque est utilisée pour créer un pool de threads libérez, pour effectuer des requêtes DNS en mode non bloquant est intégré c-are. Tous les appels système provoquant un blocage sont exécutés dans le pool de threads puis, comme les gestionnaires de signaux, renvoient le résultat de leur travail via un canal sans nom. L'exécution du code JavaScript est assurée grâce à l'utilisation d'un moteur développé par Google V8 (De plus, Microsoft développe une version de Node.js avec le moteur Chakra-Core).

À la base, Node.js est similaire aux frameworks Perl AnyEvent, Machine d'événements Ruby, Python tordu и mise en œuvre événements dans Tcl, mais la boucle d'événements dans Node.js est cachée au développeur et ressemble à la gestion des événements dans une application Web exécutée dans un navigateur. Lors de l'écriture d'applications pour node.js, il est nécessaire de prendre en compte les spécificités de la programmation événementielle, par exemple, au lieu de faire "var result = db.query("select..");" avec l'attente de la fin des travaux et le traitement ultérieur des résultats, Node.js utilise le principe de l'exécution asynchrone, c'est-à-dire le code est transformé en « db.query(« select.. », function (result) {resulttreatment}); », dans lequel le contrôle passera immédiatement à du code supplémentaire et le résultat de la requête sera traité au fur et à mesure que les données arrivent. .

Source: opennet.ru

Ajouter un commentaire