Itusilẹ ti iru ẹrọ JavaScript ẹgbẹ olupin Node.js 13.0

Wa tu silẹ Node.js 13.0, awọn iru ẹrọ fun ṣiṣe awọn ohun elo nẹtiwọki ni JavaScript. Ni akoko kanna, imuduro ti eka ti tẹlẹ ti Node.js 12.x ti pari, eyiti a ti gbe lọ si ẹka ti awọn idasilẹ atilẹyin igba pipẹ, awọn imudojuiwọn fun eyiti a ti tu silẹ fun ọdun 4. Atilẹyin fun ẹka LTS ti tẹlẹ ti Node.js 10.0 yoo ṣiṣe titi di Oṣu Kẹrin Ọjọ 2021, ati atilẹyin fun ẹka LTS ti o kẹhin 8.0 titi di Oṣu Kini ọdun 2020.

akọkọ awọn ilọsiwaju:

  • V8 engine imudojuiwọn to version 7.8, eyi ti o nlo awọn ilana imudara iṣẹ-ṣiṣe titun, ṣe atunṣe ohun elo, dinku agbara iranti, ati dinku akoko igbaradi fun ipaniyan WebAssembly;
  • Atilẹyin ni kikun fun isọdi ilu okeere ati Unicode ti o da lori ile-ikawe ti ṣiṣẹ nipasẹ aiyipada ICU (Awọn ohun elo kariaye fun Unicode), eyiti o fun laaye awọn olupilẹṣẹ lati kọ koodu atilẹyin ṣiṣẹ pẹlu awọn oriṣiriṣi awọn ede ati awọn agbegbe. Awọn kikun-icu module ti wa ni bayi sori ẹrọ nipasẹ aiyipada;
  • API diduro Awọn okun Osise, gbigba ṣẹda olona-asapo iṣẹlẹ losiwajulosehin. Imuse naa da lori module worker_threads, eyiti o fun ọ laaye lati ṣiṣẹ koodu JavaScript ni awọn okun ti o jọra pupọ. Atilẹyin iduroṣinṣin fun API Awọn okun Awọn oṣiṣẹ tun ti ṣe afẹyinti si ẹka LTS ti Node.js 12.x;
  • Awọn ibeere fun awọn iru ẹrọ ti pọ si. Fun apejọ bayi ti a beere o kere macOS 10.11 (nbeere Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Imudara ilọsiwaju fun Python 3. Ti eto naa ba ni Python 2 ati Python 3, Python 2 tun lo, ṣugbọn agbara lati kọ nigbati Python 3 ti fi sori ẹrọ nikan ni a ti ṣafikun;
  • Imuse atijọ ti parser HTTP (“—http-parser=legacy”) ti yọkuro. Awọn ipe ti a yọ kuro tabi ti sọ silẹ ati awọn ohun-ini FSWatcher.prototype.start (), ChildProcess._channel, ọna ṣiṣi () ni awọn ohun ReadStream ati WriteStream, request.connection, respond.connection, module.createRequireFromPath ();
  • Awọn atẹle jade wá imudojuiwọn 13.0.1, eyi ti ni kiakia ti o wa titi orisirisi awọn idun. Ni pataki, iṣoro pẹlu npm 6.12.0 ti n ṣafihan ikilọ kan nipa lilo ẹya ti ko ni atilẹyin ti ni ipinnu.

Jẹ ki a ranti pe pẹpẹ Node.js le ṣee lo mejeeji fun atilẹyin ẹgbẹ olupin ti awọn ohun elo wẹẹbu ati fun ṣiṣẹda alabara lasan ati awọn eto nẹtiwọọki olupin. Lati faagun awọn iṣẹ-ṣiṣe ti awọn ohun elo fun Node.js, kan ti o tobi nọmba ti gbigba ti awọn modulu, ninu eyiti o le wa awọn modulu pẹlu imuse ti awọn olupin ati awọn alabara HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, awọn modulu fun iṣọpọ pẹlu ọpọlọpọ awọn ilana wẹẹbu, WebSocket ati Ajax handlers, awọn asopọ si DBMS (MySQL, PostgreSQL, SQLite). , MongoDB), awọn ẹrọ awoṣe, awọn ẹrọ CSS, awọn imuse ti awọn algoridimu cryptographic ati awọn ọna ṣiṣe aṣẹ (OAuth), XML parsers.

Lati mu awọn nọmba nla ti awọn ibeere ti o jọra ṣiṣẹ, Node.js nlo awoṣe ipaniyan koodu asynchronous ti o da lori sisẹ iṣẹlẹ ti kii ṣe idilọwọ ati asọye awọn olutọju ipe. Awọn ọna ti a ṣe atilẹyin fun awọn asopọ pupọ pẹlu epoll, kqueue, /dev/poll, ati yan. A lo ile-ikawe si awọn asopọ pupọ libuv, eyi ti o jẹ a superstructure lori ominira lori awọn eto Unix ati lori IOCP lori Windows. A ti lo ile-ikawe lati ṣẹda adagun okun ominira, fun ṣiṣe awọn ibeere DNS ni ipo ti kii ṣe idinamọ ti ṣepọ c-awon. Gbogbo awọn ipe eto ti o fa idinamọ ni a ṣe laarin adagun okun ati lẹhinna, bii awọn olutọju ifihan, ṣe abajade iṣẹ wọn pada nipasẹ paipu ti a ko darukọ. Ṣiṣe koodu JavaScript jẹ idaniloju nipasẹ lilo ẹrọ ti Google ṣe idagbasoke V8 (Ni afikun, Microsoft n ṣe agbekalẹ ẹya Node.js pẹlu ẹrọ Chakra-Core).

Ni ipilẹ rẹ, Node.js jẹ iru si awọn ilana Perl AnyEvent, Ruby Iṣẹlẹ Machine, Python Twisted и imuse iṣẹlẹ ni Tcl, ṣugbọn iṣẹlẹ iṣẹlẹ ni Node.js ti wa ni pamọ lati awọn Olùgbéejáde ati ki o jọ iṣẹlẹ mimu ni a ayelujara ohun elo nṣiṣẹ ni a kiri ayelujara. Nigbati o ba nkọ awọn ohun elo fun node.js, o jẹ dandan lati ṣe akiyesi awọn pato ti siseto-iṣẹlẹ, fun apẹẹrẹ, dipo ṣiṣe “var esi = db.query (“yan ..”);” pẹlu idaduro fun ipari iṣẹ ati ṣiṣe atẹle ti awọn abajade, Node.js lo ilana ti ipaniyan asynchronous, ie. koodu naa ti yipada si "db.query ("yan ...", iṣẹ (esi) {esisẹ esi});", ninu eyiti iṣakoso yoo kọja lẹsẹkẹsẹ si koodu siwaju sii, ati pe abajade ibeere yoo ṣe ilana bi data ti de. .

orisun: opennet.ru

Fi ọrọìwòye kun