מעלדונג פון סערווער זייַט דזשאַוואַסקריפּט פּלאַטפאָרמע Node.js 13.0

בנימצא מעלדונג Node.js 13.0, платформы для выполнения сетевых приложений на языке JavaScript. Одновременно завершена стабилизация прошлой ветки Node.js 12.x, которая переведена в категорию выпусков с длительным сроком поддержки, обновления для которых выпускаются в течение 4 лет. Поддержка прошлой LTS-ветки Node.js 10.0 продлится до апреля 2021 года, а позапрошлой LTS-ветки 8.0 до января 2020 года.

הויפּט ימפּרווומאַנץ:

  • V8 מאָטאָר דערהייַנטיקט צו ווערסיע 7.8, в которой задействованы новые методы оптимизации производительности, улучшена деструктуризация объектов, уменьшено потребление памяти и сокращено время подготовки к выполнению WebAssembly;
  • По умолчанию включена полная поддержка интернационализации и Unicode на базе библиотек יקו (International Components for Unicode), позволяющая разработчикам писать код, שטיצן работу с разными языками и локалями. Модуль full-icu теперь установлен по умолчанию;
  • Стабилизирован API Workers Threads, אַלאַוינג создавать многопоточные циклы обработки событий (event loop). Реализация основана на модуле worker_threads, позволяющем запускать JavaScript-код в несколько параллельных потоков. Стабильная поддержка API Workers Threads также бэкепортирована в LTS-ветку Node.js 12.x;
  • Повышены требования к платформам. Для сборки теперь required как минимум 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();
  • ווייַטערדיק ארויסגעקומען обновление 13.0.1, в котором по горячим следам устранено несколько ошибок. В том числе решена проблема с выводом в npm 6.12.0 предупреждения об использовании неподдерживаемой версии.

זאל אונדז צוריקרופן אַז די Node.js פּלאַטפאָרמע קענען זיין געוויינט ביידע פֿאַר סערווער שטיצן פון וועב אַפּלאַקיישאַנז און פֿאַר קריייטינג פּראָסט קליענט און סערווער נעץ מגילה. צו יקספּאַנד די פאַנגקשאַנאַליטי פון אַפּלאַקיישאַנז פֿאַר Node.js, אַ גרויס נומער פון זאַמלונג פון מאַדזשולז, אין וואָס איר קענען געפֿינען מאַדזשולז מיט די ימפּלאַמענטיישאַן פון סערווערס און קלייאַנץ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, מאַדזשולז פֿאַר ינאַגריישאַן מיט פאַרשידן וועב פראַמעוואָרקס, WebSocket און Ajax האַנדלערס, קאַנעקטערז צו DBMS (MySQL, PostgreSQL, SQLite) , MongoDB), מוסטער ענדזשאַנז, CSS ענדזשאַנז, ימפּלאַמאַנץ פון קריפּטאָגראַפיק אַלגערידאַמז און דערלויבעניש סיסטעמען (OAuth), XML פּאַרסערס.

צו שעפּן גרויס נומער פון פּאַראַלעל ריקוועס, Node.js ניצט אַן ייסינגקראַנאַס קאָד דורכפירונג מאָדעל באזירט אויף ניט-בלאַקינג געשעעניש פּראַסעסינג און דיפיינינג קאַללבאַקק האַנדלערס. שטיצט מעטהאָדס פֿאַר מולטיפּלעקסינג קאַנעקשאַנז אַרייַננעמען epoll, kqueue, /dev/poll און select. די ביבליאָטעק איז געניצט צו מולטיפּלעקס קאַנעקשאַנז libuv, ווא ס אי ז א אויפבויע ר איבער ליבעוו אויף יוניקס סיסטעמען און איבער IOCP אויף Windows. א ביבליאָטעק איז געניצט צו שאַפֿן אַ פאָדעם בעקן libeio, פֿאַר פּערפאָרמינג דנס קוויריז אין ניט-בלאַקינג מאָדע איז ינאַגרייטיד c- אַרעס. אַלע סיסטעם רופט וואָס פאַרשאַפן בלאַקינג זענען עקסאַקיוטאַד אין די פאָדעם בעקן און דערנאָך, ווי סיגנאַל האַנדלערס, פאָרן די רעזולטאַט פון זייער אַרבעט צוריק דורך אַן אַנניימד רער. די דורכפירונג פון דזשאַוואַסקריפּט קאָד איז ינשורד דורך די נוצן פון אַ מאָטאָר דעוועלאָפּעד דורך Google V8 (אין אַדישאַן, מייקראָסאָפֿט איז דעוועלאָפּינג אַ ווערסיע פון ​​Node.js מיט די Chakra-Core מאָטאָר).

אין זיין האַרץ, Node.js איז ענלעך צו פראַמעוואָרקס פּערל אַני עווענט, רובין עווענט מאַשין, פּיטהאָן טוויסטעד и ימפּלאַמענטיישאַן געשעענישן אין Tcl, אָבער די געשעעניש שלייף אין Node.js איז פאַרבאָרגן פון די דעוועלאָפּער און ריזעמבאַלז געשעעניש האַנדלינג אין אַ וועב אַפּלאַקיישאַן פליסנדיק אין אַ בלעטערער. ווען שרייבן אַפּלאַקיישאַנז פֿאַר node.js, עס איז נייטיק צו נעמען אין חשבון די ספּעסיפיקס פון געשעעניש-געטריבן פּראָגראַממינג, פֿאַר בייַשפּיל, אַנשטאָט פון "var result = db.query ("סעלעקטירן..");" מיט ווארטן פֿאַר די קאַמפּלישאַן פון אַרבעט און סאַבסאַקוואַנט פּראַסעסינג פון די רעזולטאַטן, Node.js ניצט דעם פּרינציפּ פון ייסינגקראַנאַס דורכפירונג, י.ע. דער קאָד איז פארוואנדלען אין "db.query ("סעלעקטירן ..", פֿונקציע (רעזולטאַט) {רעזולטאַט פּראַסעסינג});", אין וואָס קאָנטראָל וועט גלייך פאָרן צו ווייַטער קאָד, און די אָנפֿרעג רעזולטאַט וועט זיין פּראַסעסט ווי דאַטן ערייווז. .

מקור: opennet.ru

לייגן אַ באַמערקונג