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

waye tu silẹ Node.js 14.0, awọn iru ẹrọ fun ṣiṣe awọn ohun elo nẹtiwọki ni JavaScript. Node.js 14.0 jẹ ẹka atilẹyin igba pipẹ, ṣugbọn ipo yii yoo yan ni Oṣu Kẹwa nikan, lẹhin imuduro. Node.js 14.0 yoo ni atilẹyin wa ni ti gbe jade titi di Oṣu Kẹrin ọdun 2023. Itọju ẹka LTS ti tẹlẹ ti Node.js 12.0 yoo ṣiṣe titi di Oṣu Kẹrin ọdun 2022, ati ọdun ṣaaju ẹka LTS to kẹhin 10.0 titi di Oṣu Kẹrin 2021. Atilẹyin fun ẹka idasile 13.x yoo pari ni Oṣu Karun ọdun yii.

akọkọ awọn ilọsiwaju:

  • Agbara lati ṣe ipilẹṣẹ lori fifo tabi lori iṣẹlẹ ti awọn iṣẹlẹ kan ti jẹ iduroṣinṣin aisan iroyin, eyiti o ṣe afihan awọn iṣẹlẹ ti o ṣe iranlọwọ ṣe iwadii awọn iṣoro bii awọn ipadanu, ibajẹ iṣẹ, jijẹ iranti, fifuye Sipiyu ti o wuwo, abajade aṣiṣe airotẹlẹ, ati bẹbẹ lọ.
  • Ṣe afikun atilẹyin API esiperimenta Ibi ipamọ Agbegbe Async pẹlu imuse ti kilasi AsyncLocalStorage, eyiti o le ṣee lo lati ṣẹda ipo asynchronous pẹlu awọn olutọju ti o da lori awọn ipe ipe ati awọn ileri. AsyncLocalStorage gba ọ laaye lati tọju data lakoko ibeere wẹẹbu kan ti n ṣiṣẹ, eyiti o leti ti ibi ipamọ okun-agbegbe ni awọn ede miiran.
  • Ifiranṣẹ ikilọ kuro nipa ẹya esiperimenta nigba ikojọpọ awọn modulu ECMAScript 6 ti sopọ ati okeere nipa lilo agbewọle ati okeere gbólóhùn. Ni akoko kanna, imuse ti awọn modulu ESM funrararẹ jẹ idanwo.
  • V8 engine imudojuiwọn to version 8.1 (1, 2, 3), eyiti o pẹlu awọn iṣapeye iṣẹ ṣiṣe tuntun ati awọn ẹya bii oniṣẹ isọdọkan ọgbọn tuntun "??" (da operand ọtun pada ti operand osi jẹ NULL tabi aisọ asọye, ati ni idakeji), oniṣẹ ẹrọ "?." fun ayẹwo ọkan-akoko ti gbogbo pq ti-ini tabi awọn ipe (fun apẹẹrẹ, "db?.olumulo?.orukọ?.ipari" lai alakoko sọwedowo), Intl.DisplayName ọna fun gba etiile awọn orukọ, ati be be lo.
  • Atunyẹwo ti Awọn ṣiṣan API ni a ṣe, ti a pinnu lati mu ilọsiwaju ti awọn API ṣiṣan ati imukuro awọn iyatọ ninu ihuwasi ti awọn ẹya ipilẹ ti Node.js. Fun apẹẹrẹ, ihuwasi ti http.OutgoingMessage sunmọ stream.Writable, ati net.Socket jẹ iru si stream.Duplex. Aṣayan autoDestroy ti ṣeto si "otitọ" nipasẹ aiyipada, ti o tumọ si pe "_destroy" ni a pe ni ipari.
  • Ṣe afikun atilẹyin API esiperimenta WASI (WebAssembly System Interface), pese awọn atọkun sọfitiwia fun ibaraenisepo taara pẹlu ẹrọ ṣiṣe (POSIX API fun ṣiṣẹ pẹlu awọn faili, awọn iho, ati bẹbẹ lọ).
  • Alekun awọn ibeere fun o kere awọn ẹya awọn alakojo ati awọn iru ẹrọ: macOS 10.13 (High Sierra), GCC 6, Windows titun 7/2008R2.

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