Нашри платформаи JavaScript-и сервер 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ро кам мекунад;
  • Дастгирии пурраи байналмилалӣ ва Юникоди ба китобхона асосёфта ба таври нобаёнӣ фаъол аст ICU (International Components for Unicode), ки ба таҳиягарон имкон медиҳад, ки код нависад дастгирикунанда бо забонҳо ва маҳалҳои гуногун кор кунед. Модули пурраи icu ҳоло бо нобаёнӣ насб шудааст;
  • API устувор шуд Риштаҳои коргарон, имкон медиҳад ҳалқаҳои рӯйдодҳои бисёр ришта эҷод кунед. Татбиқ ба модули worker_threads асос ёфтааст, ки ба шумо имкон медиҳад рамзи JavaScript-ро дар риштаҳои параллелӣ иҷро кунед. Дастгирии устувори Workers Threads API инчунин ба филиали LTS Node.js 12.x интиқол дода шудааст;
  • Талабот ба платформа зиёд карда шуд. Барои ҷамъоварӣ ҳоло талаб карда мешавад ҳадди аққал 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, усули кушода () дар объектҳои ReadStream ва WriteStream, request.connection, respond.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 ва интихобро дар бар мегиранд. Китобхона барои пайвастҳои мултиплекс истифода мешавад лиув, ки як надстройка аз болои либев дар системаҳои Unix ва бар IOCP дар Windows. Барои сохтани ҳавзи ришта китобхона истифода мешавад озодона, барои иҷрои дархостҳои DNS дар ҳолати ғайрибандӣ муттаҳид карда шудааст в-аст. Ҳама зангҳои системавӣ, ки боиси басташавӣ мешаванд, дар дохили ҳавзи ришта иҷро карда мешаванд ва сипас, ба монанди коркардкунандагони сигнал, натиҷаи кори худро тавассути қубури номаълум интиқол медиҳанд. Иҷрои рамзи JavaScript тавассути истифодаи муҳаррики аз ҷониби Google таҳияшуда таъмин карда мешавад V8 (Ғайр аз ин, Microsoft версияи Node.js-ро бо муҳаррики Chakra-Core таҳия мекунад).

Дар асл, Node.js ба чаҳорчӯбаҳо монанд аст Perl AnyEvent, Мошини рӯйдодҳои Ruby, Python Twisted и амалй гардондани рӯйдодҳо дар Tcl, аммо ҳалқаи рӯйдодҳо дар Node.js аз таҳиякунанда пинҳон аст ва ба коркарди рӯйдодҳо дар барномаи вебе, ки дар браузер кор мекунад, шабоҳат дорад. Ҳангоми навиштани замимаҳо барои node.js, масалан, ба ҷои иҷро кардани “var result = db.query(“select..”);” хусусиятҳои барномасозии ба рӯйдодҳо асосёфтаро ба назар гирифтан лозим аст. бо интизории анҷоми кор ва коркарди минбаъдаи натиҷаҳо, Node.js принсипи иҷрои асинхронӣ, яъне. код ба "db.query("интихоб..", функсия (натиҷа) {коркарди натиҷа}); табдил дода мешавад, ки дар он назорат фавран ба коди дигар мегузарад ва натиҷаи дархост ҳангоми расидани маълумот коркард мешавад. .

Манбаъ: opennet.ru

Илова Эзоҳ