Versiunea JavaScript Node.js 13.0 la nivelul serverului

Disponibil eliberare Node.js 13.0, платформы для выполнения сетевых приложений на языке JavaScript. Одновременно завершена стабилизация прошлой ветки Node.js 12.x, которая переведена в категорию выпусков с длительным сроком поддержки, обновления для которых выпускаются в течение 4 лет. Поддержка прошлой LTS-ветки Node.js 10.0 продлится до апреля 2021 года, а позапрошлой LTS-ветки 8.0 до января 2020 года.

Principalul îmbunătățiri:

  • Motor V8 actualizat la versiune 7.8, в которой задействованы новые методы оптимизации производительности, улучшена деструктуризация объектов, уменьшено потребление памяти и сокращено время подготовки к выполнению WebAssembly;
  • По умолчанию включена полная поддержка интернационализации и Unicode на базе библиотек ATI (International Components for Unicode), позволяющая разработчикам писать код, de susținere работу с разными языками и локалями. Модуль full-icu теперь установлен по умолчанию;
  • Стабилизирован API Workers Threads, permițând создавать многопоточные циклы обработки событий (event loop). Реализация основана на модуле worker_threads, позволяющем запускать JavaScript-код в несколько параллельных потоков. Стабильная поддержка API Workers Threads также бэкепортирована в LTS-ветку Node.js 12.x;
  • Повышены требования к платформам. Для сборки теперь necesar как минимум macOS 10.11 (требуется Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Улучшена поддержка Python 3. При наличии в системе Python 2 и Python 3, по-прежнему используется Python 2, но добавлена возможность сборки при наличии в системе только Python 3;
  • Удалена старая реализация HTTP-парсера («—http-parser=legacy»). Удалены или переведены в разряд устаревших вызовы и свойства FSWatcher.prototype.start(), ChildProcess._channel, метод open() в объектах ReadStream и WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Urmează a iesit обновление 13.0.1, в котором по горячим следам устранено несколько ошибок. В том числе решена проблема с выводом в npm 6.12.0 предупреждения об использовании неподдерживаемой версии.

Să reamintim că platforma Node.js poate fi folosită atât pentru suport de server pentru aplicații Web, cât și pentru crearea de programe obișnuite de rețea client și server. Pentru a extinde funcționalitatea aplicațiilor pentru Node.js, un număr mare de colecție de module, în care puteți găsi module cu implementare de servere și clienți HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module de integrare cu diverse cadre web, handlere WebSocket și Ajax, conectori la DBMS (MySQL, PostgreSQL, SQLite). , MongoDB ), motoare de șablon, motoare CSS, implementări de algoritmi criptografici și sisteme de autorizare (OAuth), parsere XML.

Pentru a gestiona un număr mare de solicitări paralele, Node.js folosește un model de execuție a codului asincron bazat pe procesarea evenimentelor neblocante și definirea handlerelor de apel invers. Metodele acceptate pentru multiplexarea conexiunilor includ epoll, kqueue, /dev/poll și select. Biblioteca este folosită pentru multiplexarea conexiunilor libuv, care este o suprastructură peste libev pe sisteme Unix și prin IOCP pe Windows. O bibliotecă este folosită pentru a crea un pool de fire libeio, pentru efectuarea de interogări DNS în modul neblocant este integrat c-ari. Toate apelurile de sistem care provoacă blocarea sunt executate în pool-ul de fire și apoi, ca și manipulatorii de semnal, trec rezultatul muncii lor înapoi printr-o conductă fără nume. Executarea codului JavaScript este asigurată prin utilizarea unui motor dezvoltat de Google V8 (În plus, Microsoft dezvoltă o versiune de Node.js cu motorul Chakra-Core).

În esență, Node.js este similar cu cadrele Perl AnyEvent, Ruby Event Machine, Python Twisted и implementare evenimente în Tcl, dar bucla de evenimente din Node.js este ascunsă de dezvoltator și seamănă cu gestionarea evenimentelor într-o aplicație web care rulează într-un browser. Când scrieți aplicații pentru node.js, este necesar să țineți cont de specificul programării bazate pe evenimente, de exemplu, în loc să faceți „var result = db.query(“select..”);” cu așteptarea finalizării lucrărilor și procesarea ulterioară a rezultatelor, Node.js folosește principiul execuției asincrone, adică. codul este transformat în „db.query(“select..”, funcția (rezultat) {prelucrare rezultat});”, în care controlul va trece imediat la codul ulterioar, iar rezultatul interogării va fi procesat pe măsură ce sosesc datele. .

Sursa: opennet.ru

Adauga un comentariu