ການປ່ອຍ JavaScript ຂ້າງເຊີບເວີ Node.js 16.0

Состоялся релиз Node.js 16.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 16.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 16.0 будет осуществляться до апреля 2023 года. Сопровождение прошлой LTS-ветки Node.js 14.0 продлится до апреля 2023 года, а позапрошлой LTS-ветки 12.0 до апреля 2022 года. Сопровождение LTS-ветки 10.0 будет прекращено через 10 дней.

ການປັບປຸງຕົ້ນຕໍ:

  • Движок V8 обновлён до версии 9.0 (в Node.js 15 использовался выпуск 8.6), что позволило реализовать в Node.js 16 такие возможности, как свойство «indices» для регулярных выражений (включает массив с начальными и конечными позициями групп совпадений), метод Atomics.waitAsync (асинхронная версия Atomics.wait), поддержка использования ключевого слова await в модулях на верхнем уровне. Ускорен вызов функций, в ситуации, когда число переданных аргументов не соответствует определённым в функции параметрам.
  • Стабилизирован API Timers Promises, предоставляющий альтернативный набор функций для работы с таймером, возвращающих на выходе объекты Promise, что позволяет обойтись без использования util.promisify(). import { setTimeout } from ‘timers/promises’; async function run() { await setTimeout(5000); console.log(‘Hello, World!’); } run();
  • Добавлена экспериментальная реализация API Web Crypto, предназначенного для выполнения базовых криптографических операций на стороне web-приложений, таких как манипуляции с криптографическими хэшами, генерация и проверка цифровых подписей, кодирование и декодирования данных с использованием различных методов шифрования, формирование криптографически надёжных случайных чисел. В API также предусмотрены функции для генерации ключей и управления ими.
  • N-API (API для разработки дополнений) обновлён до версии 8.
  • Осуществлён переход на новый выпуск пакетного менеджера NPM 7.10.
  • Стабилизирована реализация класса AbortController, основанного на Web API AbortController и позволяющего отменять сигналы в выбранных API на основе Promise.
  • Стабилизирована поддержка третьей версии формата Source Map, используемого для сопоставления сгенерированных, обработанных или упакованных модулей с оригинальным исходным кодом.
  • Для совместимости с устаревшими Web API добавлены методы buffer.atob(data) и buffer.btoa(data).
  • Началось формирование сборок для новых устройств Apple, оснащённых ARM-чипом M1.
  • На платформе Linux требования к версии компилятора подняты до GCC 8.3.

ຈື່ໄວ້ວ່າແພລະຕະຟອມ Node.js ສາມາດຖືກນໍາໃຊ້ທັງສໍາລັບການບໍາລຸງຮັກສາເຄື່ອງແມ່ຂ່າຍຂອງຄໍາຮ້ອງສະຫມັກເວັບແລະສໍາລັບການສ້າງໂຄງການເຄືອຂ່າຍລູກຄ້າແລະເຄື່ອງແມ່ຂ່າຍທົ່ວໄປ. ເພື່ອຂະຫຍາຍການທໍາງານຂອງຄໍາຮ້ອງສະຫມັກສໍາລັບ Node.js, ການເກັບກໍາຂະຫນາດໃຫຍ່ຂອງໂມດູນໄດ້ຖືກກະກຽມ, ໃນທີ່ທ່ານສາມາດຊອກຫາໂມດູນທີ່ມີການປະຕິບັດ HTTP, SMTP, XMPP, DNS, FTP, IMAP, ເຄື່ອງແມ່ຂ່າຍ POP3 ແລະລູກຄ້າ, ໂມດູນສໍາລັບການເຊື່ອມໂຍງ. ກັບກອບເວັບຕ່າງໆ, WebSocket ແລະ Ajax handlers , DBMS connectors (MySQL, PostgreSQL, SQLite, MongoDB), templates engines, CSS engines, ການປະຕິບັດຂອງ crypto algorithms ແລະລະບົບການອະນຸຍາດ (OAuth), XML parsers.

ເພື່ອຮັບປະກັນການປະມວນຜົນຄໍາຮ້ອງຂໍຂະຫນານຈໍານວນຫລາຍ, Node.js ໃຊ້ຮູບແບບການປະຕິບັດລະຫັດ asynchronous ໂດຍອີງໃສ່ການຈັດການເຫດການທີ່ບໍ່ຖືກບລັອກແລະຄໍານິຍາມຂອງຕົວຈັດການການໂທຄືນ. ວິທີການທີ່ຮອງຮັບສໍາລັບການເຊື່ອມຕໍ່ multiplexing ແມ່ນ epoll, kqueue, /dev/poll, ແລະເລືອກ. ສໍາລັບການ multiplexing ການເຊື່ອມຕໍ່, ຫໍສະຫມຸດ libuv ຖືກນໍາໃຊ້, ເຊິ່ງເປັນ add-on ສໍາລັບ libev ໃນລະບົບ Unix ແລະ IOCP ໃນ Windows. ຫ້ອງສະຫມຸດ libeio ຖືກນໍາໃຊ້ເພື່ອສ້າງສະນຸກເກີກະທູ້, ແລະ c-ares ໄດ້ຖືກປະສົມປະສານເພື່ອປະຕິບັດການສອບຖາມ DNS ໃນຮູບແບບທີ່ບໍ່ປິດກັ້ນ. ການໂທລະບົບທັງຫມົດທີ່ເຮັດໃຫ້ເກີດການຂັດຂວາງແມ່ນຖືກປະຕິບັດພາຍໃນສະນຸກເກີຂອງ thread ແລະຫຼັງຈາກນັ້ນ, ເຊັ່ນຕົວຈັບສັນຍານ, ໂອນຜົນໄດ້ຮັບຂອງການເຮັດວຽກຂອງພວກເຂົາຄືນຜ່ານທໍ່ທີ່ບໍ່ມີຊື່ (ທໍ່). ການປະຕິບັດລະຫັດ JavaScript ແມ່ນສະຫນອງໃຫ້ໂດຍຜ່ານການນໍາໃຊ້ເຄື່ອງຈັກ V8 ທີ່ພັດທະນາໂດຍ Google (ນອກຈາກນັ້ນ, Microsoft ກໍາລັງພັດທະນາສະບັບຂອງ Node.js ກັບເຄື່ອງຈັກ Chakra-Core).

ຢູ່ໃນຫຼັກຂອງມັນ, Node.js ແມ່ນຄ້າຍຄືກັນກັບ Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, ແລະການຈັດຕັ້ງປະຕິບັດເຫດການ Tcl, ແຕ່ loop ເຫດການໃນ Node.js ຖືກເຊື່ອງໄວ້ຈາກຜູ້ພັດທະນາແລະຄ້າຍຄືກັບການຈັດການເຫດການໃນແອັບພລິເຄຊັນເວັບທີ່ເຮັດວຽກ. ໃນ browser. ເມື່ອຂຽນຄໍາຮ້ອງສະຫມັກສໍາລັບ node.js, ທ່ານຈໍາເປັນຕ້ອງພິຈາລະນາສະເພາະຂອງການຂຽນໂປຼແກຼມທີ່ຂັບເຄື່ອນໂດຍເຫດການ, ຕົວຢ່າງ, ແທນທີ່ຈະເຮັດ "var result = db.query("select..");" ກັບການລໍຖ້າການສໍາເລັດຂອງການເຮັດວຽກແລະການປຸງແຕ່ງຜົນໄດ້ຮັບຕໍ່ມາ, Node.js ໃຊ້ຫຼັກການຂອງການປະຕິບັດ asynchronous, i.e. ລະຫັດຖືກປ່ຽນເປັນ "db.query("select..", function (result) {result processing});", ເຊິ່ງການຄວບຄຸມຈະສົ່ງຜ່ານລະຫັດຕໍ່ໄປທັນທີ, ແລະຜົນການສອບຖາມຈະຖືກປະມວນຜົນເມື່ອຂໍ້ມູນມາຮອດ.

Дополнительно можно отметить, что компания Deno, основанная создателем Node.js для развития платформы нового поколения Deno, получила 4.9 млн долларов инвестиций. По своему назначению Deno напоминает Node.js, но пытается устранить концептуальные ошибки, допущенные в архитектуре Node.js, и предоставить пользователям более защищённое окружение. Отмечается, что бизнес-решения компании Deno будут строится на полностью открытых продуктах, а модель Open Core с выделением отдельной платной функциональности воспринимается как неприемлемая для платформы Deno.

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ