سرور طرف جاوا اسڪرپٽ پليٽ فارم Node.js 21.0 دستياب آهي

Node.js 21.0 جاري ڪيو ويو، جاوا اسڪرپٽ ۾ نيٽ ورڪ ايپليڪيشنن کي هلائڻ لاء هڪ پليٽ فارم. Node.js 21.0 برانچ 6 مهينن لاءِ سپورٽ ڪئي ويندي. ايندڙ ڏينهن ۾، Node.js 20 برانچ جي استحڪام مڪمل ڪئي ويندي، جيڪا LTS اسٽيٽس حاصل ڪندي ۽ اپريل 2026 تائين سپورٽ ڪئي ويندي. Node.js 18.0 جي پوئين LTS برانچ جي سار سنڀال سيپٽمبر 2025 تائين ٿيندي، ۽ آخري LTS برانچ 16.0 کان اڳ جو سال اپريل 2024 تائين.

بنيادي سڌارا:

  • Fetch API کي مستحڪم قرار ڏنو ويو آهي، نيٽ ورڪ تي وسيلن کي لوڊ ڪرڻ ۽ سرور ۽ ڪلائنٽ طرفن تي ڪم ڪرڻ لاءِ موزون عالمگير جاوا اسڪرپٽ ڪوڊ جي لکڻ کي آسان ڪرڻ لاءِ ٺهيل آهي. عمل درآمد HTTP/1.1 undici ڪلائنٽ جي ڪوڊ تي ٻڌل آهي ۽ برائوزرن ۾ مهيا ڪيل ساڳي API جي ممڪن حد تائين ويجهو آهي. API ۾ شامل آهي fetch() طريقو ۽ Headers شيون. درخواست ۽ جواب، HTTP هيڊر جي نمائندگي ڪندي، درخواست ۽ جواب. const res = آڻڻ جو انتظار ڪريو('https://nodejs.org/api/documentation.json')؛ جيڪڏھن (res.ok) { const data = انتظار ڪريو res.json(); console.log(ڊيٽا)؛ }
  • WebStreams API لاءِ سپورٽ، جيڪا نيٽ ورڪ تي حاصل ڪيل ڊيٽا اسٽريمز تائين رسائي فراهم ڪري ٿي، مستحڪم ڪئي وئي آهي. API اهو ممڪن بڻائي ٿو ته توهان جا پنهنجا هينڊلر شامل ڪن جيڪي ڊيٽا سان گڏ ڪم ڪن ٿيون جيئن معلومات نيٽ ورڪ تي اچي ٿي، پوري فائل ڊائون لوڊ ٿيڻ جو انتظار ڪرڻ کان سواءِ. Node.js ۾ موجود شيون شامل آهن ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, and DecompressionStream.
  • WebSocket ڪلائنٽ جو تجرباتي عمل شامل ڪيو ويو، برائوزرن سان مطابقت. WebSocket سپورٽ کي فعال ڪرڻ لاء، "--experimental-websocket" پرچم مهيا ڪيو ويو آهي.
  • CommonJS جي بدران JavaScript ماڊلز ESM (ECMAScript ماڊلز، ماڊلز لاءِ برائوزرز ۾ استعمال ٿيل) جي ڊفالٽ لاڳو ڪرڻ جو تجرباتي موڊ شامل ڪيو ويو (مخصوص Node.js). تبديلي ان ماڊلز تي اثرانداز نه ٿي جن جي فارميٽ واضح طور تي "-input-type" جھنڊو ذريعي بيان ڪيل package.json ۾ "type" فيلڊ ذريعي بيان ڪئي وئي آهي، يا فائل ايڪسٽينشن (.mjs for ESM، .cjs) جي ڪري واضح آهي CommonJS لاءِ). جڏهن ته، ماڊلز جيڪي واضح طور تي CommonJS طور بيان نه ڪيا ويا آهن (مثال طور، هڪ ".js" ايڪسٽينشن آهي) جڏهن نئون موڊ فعال ڪيو ويندو ته ESM ماڊلز طور سمجهيو ويندو. نئين ماڊل سيٽنگون کي چالو ڪرڻ لاء، "-تجرباتي-ڊفالٽ-قسم" پرچم پيش ڪيو ويو آهي.
  • V8 انجڻ کي ورزن 11.8 تي اپڊيٽ ڪيو ويو آهي، جيڪو Chromium 118 ۾ استعمال ڪيو ويو آهي، جيڪو هاڻي ArrayBuffer.prototype.transfer جي طريقي کي سپورٽ ڪري ٿو، گروپ جي صفن جي صلاحيت (گروپ بائي طريقو) ۽ WebAssembly هدايتون پروسيسنگ مستقل لاءِ (i32.add, i32.sub، i32.mul، i64 .add، i64.sub ۽ i64.mul).
  • گلوبل پرلوڊ هينڊلر لاءِ سپورٽ بند ڪئي وئي آهي، رجسٽر ڪرڻ جي حق ۾ ۽ ماڊلز کي ترتيب ڏيڻ لاءِ ڪال شروع ڪرڻ.
  • هڪ "فلش" اختيار شامل ڪيو ويو آهي fs.writeFile فنڪشن ۾ ڊيٽا کي مجبور ڪرڻ لاءِ هر لکڻ جي آپريشن کان پوءِ ڊرائيو تي فلش ڪيو وڃي.
  • URL parsing، fetch API، streams، node:fs، ۽ HTTP سان لاڳاپيل ڪوڊ جي بهتر ڪارڪردگي.
  • شامل ڪيو ويو گلوبل نيويگيٽر اعتراض. مثال طور، CPU ڪور جي تعداد بابت ڊيٽا حاصل ڪرڻ لاءِ، توھان استعمال ڪري سگھو ٿا navigator.hardwareConcurrency ملڪيت.
  • "-test" پيٽرولر ۾، گلوب ماسڪ لاء سپورٽ شامل ڪئي وئي آهي ٽيسٽ کي هلائڻ لاء چونڊڻ لاء (مثال طور، توهان وضاحت ڪري سگهو ٿا "-test **/*.test.js.").
  • بنڊل پيڪيج مئنيجر npm 10.2.0 ۽ llhttp 9.1.2 پارسر اپڊيٽ ڪيو ويو آهي.
  • Visual Studio 2019 لاءِ سپورٽ ۽ macOS جا 11.0 کان پراڻا ورجن بند ڪيا ويا آهن.

Node.js پليٽ فارم ويب ايپليڪيشنن جي سرور جي سار سنڀال ۽ باقاعده ڪلائنٽ ۽ سرور نيٽ ورڪ پروگرام ٺاهڻ لاءِ استعمال ڪري سگھجي ٿو. Node.js لاءِ ايپليڪيشنن جي ڪارڪردگي کي وڌائڻ لاءِ، ماڊلز جو هڪ وڏو مجموعو تيار ڪيو ويو آهي، جنهن ۾ توهان HTTP، SMTP، XMPP، DNS، FTP، IMAP، POP3 سرورز ۽ ڪلائنٽ، انضمام لاءِ ماڊلز جي نفاذ سان ماڊلز ڳولي سگهو ٿا. مختلف ويب فريم ورڪ سان، WebSocket ۽ Ajax handlers، DBMS connectors (MySQL، PostgreSQL، SQLite، MongoDB)، ٽيمپليٽنگ انجڻ، CSS انجڻ، لاڳو ڪرڻ وارا crypto algorithms ۽ Authorization Systems (OAuth)، XML parsers.

وڏي تعداد ۾ متوازي درخواستن جي پروسيسنگ کي يقيني بڻائڻ لاءِ، Node.js استعمال ڪري ٿو هڪ غير بلاڪنگ ايونٽ هينڊلنگ ۽ ڪال بڪ هينڊلر جي تعريف جي بنياد تي هڪ اسيڪرونس ڪوڊ ايگزيڪيوشن ماڊل. ملٽي پلڪسنگ ڪنيڪشن لاءِ سپورٽ ٿيل طريقا آهن ايپول، ڪڪيو، /dev/poll، ۽ چونڊيو. ڪنيڪشن ملٽي پلڪسنگ لاءِ، libuv لائبريري استعمال ٿئي ٿي، جيڪا يونڪس سسٽم تي libev ۽ ونڊوز تي IOCP لاءِ هڪ اضافو آهي. لائبيو لائبريري ٿريڊ پول ٺاهڻ لاءِ استعمال ڪئي ويندي آهي، ۽ سي-آئرز غير بلاڪنگ موڊ ۾ DNS سوالن کي انجام ڏيڻ لاءِ ضم ٿيل آهي. سڀئي سسٽم ڪالون جيڪي بلاڪ ڪرڻ جو سبب بڻجن ٿيون ٿريڊ پول جي اندر ۽ پوءِ، سگنل هينڊلر وانگر، انهن جي ڪم جو نتيجو واپس هڪ نامعلوم پائپ (پائپ) ذريعي منتقل ڪيو وڃي ٿو. جاوا اسڪرپٽ ڪوڊ جي عمل کي گوگل پاران تيار ڪيل V8 انجڻ جي استعمال ذريعي مهيا ڪيو ويو آهي (ان کان علاوه، Microsoft Chakra-Core انجڻ سان Node.js جو هڪ نسخو ٺاهي رهيو آهي).

ان جي بنيادي طور تي، Node.js Perl AnyEvent، Ruby Event Machine، Python Twisted فريم ورڪ، ۽ Tcl ايونٽ لاڳو ڪرڻ سان ملندڙ جلندڙ آهي، پر Node.js ۾ واقع ايونٽ لوپ ڊولپر کان لڪيل آهي ۽ هلندڙ ويب ايپليڪيشن ۾ ايونٽ هينڊلنگ وانگر آهي. برائوزر ۾. node.js لاءِ ايپليڪيشنون لکڻ وقت، توهان کي ايونٽ تي هلندڙ پروگرامنگ جي خاصيتن تي غور ڪرڻ جي ضرورت آهي، مثال طور، ڪرڻ جي بدران "var result = db.query("select..");" ڪم جي مڪمل ٿيڻ جي انتظار ۽ نتيجن جي بعد ۾ پروسيسنگ سان، Node.js استعمال ڪري ٿو غير مطابقت واري عمل جو اصول، يعني. ڪوڊ "db.query("select.."، function (نتيجو) {نتيجو پروسيسنگ}) ۾ تبديل ٿي ويو آهي، جنهن ۾ ڪنٽرول فوري طور تي وڌيڪ ڪوڊ ڏانهن منتقل ڪيو ويندو، ۽ سوال جو نتيجو پروسيس ڪيو ويندو جيئن ڊيٽا اچي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو