منصة JavaScript من جانب الخادم Node.js 19.0 متاحة

تم إصدار Node.js 19.0، وهو عبارة عن منصة لتشغيل تطبيقات الشبكة في JavaScript. Node.js 19 هو فرع دعم منتظم مع تحديثات متاحة حتى يونيو 2023. في الأيام المقبلة، سيتم الانتهاء من تثبيت فرع Node.js 18، والذي سيحصل على حالة LTS وسيتم دعمه حتى أبريل 2025. ستستمر صيانة فرع LTS السابق من Node.js 16.0 حتى سبتمبر 2023، والعام السابق لآخر فرع LTS 14.0 حتى أبريل 2023.

التحسينات الرئيسية:

  • تم تحديث محرك V8 إلى الإصدار 10.7، المستخدم في Chromium 107. ومن بين التغييرات في المحرك مقارنة بفرع Node.js 18، لوحظ تنفيذ الإصدار الثالث من Intl.NumberFormat API، الذي يضيف وظائف جديدة formatRange ()، formatRangeToParts () وselectRange ()، تجميع المجموعات، خيارات جديدة للتقريب وتحديد الدقة، القدرة على تفسير السلاسل كأرقام عشرية. تم أيضًا تحديث التبعيات المضمنة llhttp 8.1.0 وnpm 8.19.2.
  • تم اقتراح أمر "node -watch" التجريبي الذي ينفذ وضع المراقبة الذي يضمن إعادة تشغيل العملية عند تغيير الملف المستورد (على سبيل المثال، إذا تم تنفيذ "node -watch Index.js"، فسيتم إعادة تشغيل العملية تلقائيًا عندما يتغير ملف Index.js).
  • بالنسبة لجميع اتصالات HTTP/HTTPS الصادرة، يتم تمكين دعم آلية HTTP 1.1 Keep-Alive، مما يترك الاتصال مفتوحًا لفترة معينة لمعالجة طلبات HTTP المتعددة داخل نفس الاتصال. ومن المتوقع أن يؤدي Keep-Alive إلى تحسين الإنتاجية والأداء. افتراضيًا، يتم تعيين مهلة فتح الاتصال على 5 ثوانٍ. تمت إضافة دعم لتحليل رأس Keep-Alive HTTP في استجابات الخادم إلى تطبيق عميل HTTP، كما تمت إضافة قطع الاتصال التلقائي للعملاء غير النشطين باستخدام Keep-Alive إلى تطبيق خادم Node.js HTTP.
  • تم نقل WebCrypto API إلى الفئة الثابتة، باستثناء الوظائف التي تستخدم خوارزميات Ed25519 وEd448 وX25519 وX448. للوصول إلى وحدة WebCrypto، يمكنك الآن استخدام globalThis.crypto أو require('node:crypto').webcrypto.
  • تمت إزالة دعم أدوات التتبع DTrace وSystemTap وETW (Event Tracing for Windows)، والتي اعتبرت صيانتها غير مناسبة نظرًا لتعقيد تحديثها في غياب خطة دعم مناسبة.

يمكن استخدام النظام الأساسي 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 و select. لتعدد إرسال الاتصال ، يتم استخدام مكتبة libuv ، وهي وظيفة إضافية لـ libev على أنظمة Unix و IOCP على Windows. تُستخدم مكتبة libeio لإنشاء مجموعة مؤشرات ترابط ، ويتم دمج c-ares لإجراء استعلامات DNS في وضع عدم الحظر. يتم تنفيذ جميع استدعاءات النظام التي تسبب الحجب داخل تجمع مؤشرات الترابط ، وبعد ذلك ، مثل معالجات الإشارات ، تنقل نتيجة عملهم مرة أخرى عبر أنبوب غير مسمى (أنبوب). يتم توفير تنفيذ كود JavaScript من خلال استخدام محرك V8 الذي طورته Google (بالإضافة إلى ذلك ، تقوم Microsoft بتطوير نسخة من Node.js مع محرك Chakra-Core).

في جوهره ، يشبه Node.js Perl AnyEvent و Ruby Event Machine و Python Twisted Framework وتطبيق حدث Tcl ، لكن حلقة الحدث في Node.js مخفية عن المطور وتشبه معالجة الأحداث في تطبيق ويب قيد التشغيل في المتصفح. عند كتابة تطبيقات لـ node.js ، تحتاج إلى مراعاة تفاصيل البرمجة المدفوعة بالأحداث ، على سبيل المثال ، بدلاً من تنفيذ "var result = db.query (" select .. ")؛" مع انتظار اكتمال العمل والمعالجة اللاحقة للنتائج ، يستخدم Node.js مبدأ التنفيذ غير المتزامن ، أي يتم تحويل الكود إلى "db.query (" حدد .. "، الوظيفة (النتيجة) {معالجة النتائج}) ؛" ، حيث ينتقل عنصر التحكم على الفور إلى رمز إضافي ، وستتم معالجة نتيجة الاستعلام عند وصول البيانات.

المصدر: opennet.ru

إضافة تعليق