Node.js
Node.js بيئة تشغيل جافا سكريبت مفتوحة المصدر ومتعددة المنصات ، تعمل على أنظمة تشغيل ويندوز ، لينكس ، يونكس ، ماك أو إس ، وغيرها. تعتمد Node.js على محرك جافا سكريبت V8 ، وتُنفذ شيفرة جافا سكريبت خارج متصفح الويب . ووفقًا لاستطلاع رأي مطوري Stack Overflow، تُعد Node.js من أكثر تقنيات الويب استخدامًا. [ 6 ]
تتيح Node.js للمطورين استخدام JavaScript لكتابة أدوات سطر الأوامر وبرمجة جانب الخادم . ويُستخدم تشغيل JavaScript على الخادم عادةً لإنشاء محتوى صفحات ويب ديناميكي قبل إرسال الصفحة إلى متصفح المستخدم. وبالتالي، تمثل Node.js نموذج "JavaScript في كل مكان" [ 7 ] ، حيث توحد تطوير تطبيقات الويب حول لغة برمجة واحدة ، بدلاً من استخدام لغات مختلفة لبرمجة جانب الخادم مقابل جانب العميل.
تعتمد Node.js على بنية تعتمد على الأحداث وتدعم عمليات الإدخال والإخراج غير المتزامنة . تهدف هذه الخيارات التصميمية إلى تحسين الإنتاجية وقابلية التوسع في تطبيقات الويب التي تتضمن العديد من عمليات الإدخال/الإخراج، وكذلك في تطبيقات الويب التي تعمل في الوقت الفعلي (مثل برامج الاتصال في الوقت الفعلي وألعاب المتصفح ). [ 8 ]
كان مشروع تطوير Node.js الموزع يُدار سابقًا من قِبل مؤسسة Node.js، [ 9 ] وقد اندمج الآن مع مؤسسة JS لتشكيل مؤسسة OpenJS . وتتلقى مؤسسة OpenJS الدعم من برنامج المشاريع التعاونية التابع لمؤسسة Linux . [ 10 ]
تاريخ


كتب ريان دال لغة Node.js في البداية عام 2009، [ 11 ] أي بعد حوالي 13 عامًا من إطلاق أول بيئة جافا سكريبت من جانب الخادم، وهي LiveWire Pro Web من نتسكيب . [ 12 ] كان الإصدار الأولي يدعم نظامي التشغيل لينكس وماك أو إس إكس فقط. تولى دال قيادة تطويرها وصيانتها، ثم تولت شركة جوينت رعايتها لاحقًا . [ 13 ]
انتقد دال القدرة المحدودة لخادم Apache HTTP على التعامل مع العديد من الاتصالات المتزامنة (أكثر من 10000)، بالإضافة إلى نموذج البرمجة السائد المتمثل في البرمجة التسلسلية، حيث يمكن للتطبيقات أن تحظر العمليات بأكملها أو تتسبب في إنشاء مكدسات تنفيذ متعددة للاتصالات المتزامنة.
عرض دال المشروع في المؤتمر الأوروبي الأول لـ JSConf في 8 نوفمبر 2009. [ 14 ] [ 15 ] [ 16 ] جمع Node.js بين محرك V8 JavaScript من Google ، وحلقة أحداث ، وواجهة برمجة تطبيقات للإدخال/الإخراج منخفضة المستوى . [ 17 ]
في يناير 2010، تم تقديم مدير حزم لبيئة Node.js يُسمى npm . [ 18 ] يسمح مدير الحزم للمبرمجين بنشر ومشاركة حزم Node.js ، بالإضافة إلى شفرة المصدر المصاحبة لها، وهو مصمم لتبسيط تثبيت الحزم وتحديثها وإزالتها. [ 17 ]
في يونيو 2011، قامت مايكروسوفت وجوينت بتنفيذ نسخة أصلية من Node.js لنظام التشغيل ويندوز. [ 19 ] تم إصدار أول إصدار من Node.js يدعم نظام التشغيل ويندوز في يوليو 2011.
في يناير 2012، سلم دال إدارة المشروع لمنشئ npm إسحاق شلويتر. [ 20 ] في يناير 2014، أعلن شلويتر أن تيموثي جيه فونتين سيقود المشروع. [ 21 ]
في ديسمبر 2014، أنشأ فيدور إندوتني مشروع io.js، وهو نسخة معدلة من Node.js، وذلك بسبب عدم رضاه عن نظام إدارة Joyent، كبديل للحوكمة المفتوحة مع لجنة فنية منفصلة. كان الهدف هو تمكين بنية أكثر تقبلاً لمساهمات المجتمع، بما في ذلك تحديث io.js بأحدث إصدارات محرك جافا سكريبت V8 من جوجل، وهو ما يختلف عن نهج Node.js في ذلك الوقت. [ 22 ]
أُعلن عن تأسيس مؤسسة Node.js في فبراير 2015 بهدف توحيد Node.js وio.js تحت مظلة واحدة. [ 23 ] وتمّ الاندماج في سبتمبر 2015، حيث دُمجت Node.js v0.12 وio.js v3.3 في Node v4.0. [ 24 ] أضاف هذا الاندماج ميزات V8 ES6 إلى Node.js وبدأ دورة إصدارات دعم طويلة الأمد. [ 25 ] وبحلول عام 2016، أوصى موقع io.js الإلكتروني بالعودة إلى Node.js، وأعلن عن توقفه عن إصدار أي نسخ أخرى من io.js، مما أنهى فعليًا عملية التفرع وعزز نجاح الاندماج. [ 26 ]
في عام 2019، اندمجت مؤسسة JS ومؤسسة Node.js لتشكيل مؤسسة OpenJS .
العلامة التجارية
يتميز شعار Node.js بمضلع سداسي أخضر ذي أشرطة متداخلة للدلالة على طبيعة بيئة التشغيل متعددة المنصات. [ 27 ] تم اختيار السلحفاة الصاروخية كشعار رسمي لـ Node.js في فبراير 2024 بعد مسابقة تصميم. [ 28 ]
ملخص
تتيح Node.js إنشاء خوادم ويب وأدوات شبكات باستخدام JavaScript ومجموعة من "الوحدات" التي تتولى وظائف أساسية متنوعة. [ 14 ] [ 17 ] [ 29 ] [ 30 ] [ 31 ] تُوفّر هذه الوحدات لمعالجة عمليات الإدخال والإخراج لأنظمة الملفات ، والشبكات ( DNS ، HTTP ، TCP ، TLS/SSL ، أو UDP )، والبيانات الثنائية (المخازن المؤقتة)، ووظائف التشفير ، وتدفقات البيانات، وغيرها من الوظائف الأساسية. [ 17 ] [ 30 ] [ 32 ] تستخدم وحدات Node.js واجهة برمجة تطبيقات (API) مصممة لتقليل تعقيد كتابة تطبيقات الخادم. [ 17 ] [ 30 ]
منذ الإصدار 22.6.0، يدعم Node.js لغتي JavaScript و TypeScript بشكلٍ أصلي ، مما يسمح بتنفيذ ملفات TypeScript دون الحاجة إلى خطوة ترجمة منفصلة. [ 33 ] وقد ساهم ماركو إيبوليتو، عضو لجنة تطوير Node.js التقنية، في دعم TypeScript. إضافةً إلى ذلك، تتوفر العديد من لغات الترجمة إلى JavaScript ، [ 34 ] مما يسمح بكتابة تطبيقات Node.js بلغات CoffeeScript ، [ 35 ] وDart و ClojureScript وغيرها.
تُستخدم Node.js بشكل أساسي لبناء برامج الشبكة مثل خوادم الويب. [ 29 ] يتمثل الاختلاف الأبرز بين Node.js و PHP في أن معظم الدوال في PHP تُوقف التنفيذ حتى اكتمالها (لا تُنفذ الأوامر إلا بعد انتهاء الأوامر السابقة)، بينما دوال Node.js غير مُوقفة (تُنفذ الأوامر بالتزامن وتستخدم ردود الاتصال للإشارة إلى اكتمال التنفيذ أو فشله). [ 29 ]
يدعم نظام التشغيل Node.js رسميًا أنظمة Linux و macOS و Microsoft Windows 8.1 و Server 2012 (والإصدارات الأحدث)، [ 3 ] مع دعم من المستوى الثاني لنظامي SmartOS و IBM AIX ودعم تجريبي لنظام FreeBSD . كما يعمل نظام OpenBSD أيضًا، وتتوفر إصدارات طويلة الأمد (LTS) لنظام IBM i (AS/400). [ 36 ] ويمكن أيضًا بناء شفرة المصدر على أنظمة تشغيل مشابهة غير مدعومة رسميًا، مثل NonStop OS [ 37 ] وخوادم Unix .
بنية المنصة
تُمكّن Node.js من تطوير خوادم ويب سريعة باستخدام JavaScript وبرمجة الأحداث . [ 17 ] يستطيع المطورون إنشاء خوادم قابلة للتوسع دون استخدام تعدد الخيوط، وذلك باستخدام نموذج مُبسّط يعتمد على ردود الاتصال للإشارة إلى اكتمال المهمة. [ 17 ] تجمع Node.js بين سهولة لغة البرمجة النصية (JavaScript) وقوة برمجة الشبكات في أنظمة Unix. [ 17 ]
بُنيت Node.js على محرك V8 JavaScript من جوجل، نظرًا لكونه مفتوح المصدر بموجب ترخيص BSD ، وهي تدعم بشكل شامل البروتوكولات الأساسية مثل HTTP و DNS و TCP . [ 14 ] وقد ساهمت شعبية JavaScript في جعل Node.js في متناول مجتمع مطوري الويب . [ 14 ]
دعم الصناعة
تتوفر آلاف المكتبات مفتوحة المصدر لـ Node.js، ومعظمها مُستضاف على موقع npm. تُعقد العديد من المؤتمرات والفعاليات للمطورين لدعم مجتمع Node.js، بما في ذلك NodeConf وNode Interactive وNode Summit، بالإضافة إلى عدد من الفعاليات الإقليمية.
طوّر مجتمع المصادر المفتوحة أطر عمل ويب لتسريع تطوير التطبيقات. تشمل هذه الأطر Express.js و Socket.IO و Sails.js و Next.js و Meteor . [ 17 ] [ 38 ] كما تم إنشاء حزم برمجية متنوعة للتفاعل مع لغات برمجة أخرى أو بيئات تشغيل مثل Microsoft .NET . [ 39 ]
توفر بيئات التطوير المتكاملة الحديثة لسطح المكتب ميزات التحرير والتصحيح خصيصًا لتطبيقات Node.js. تشمل هذه البيئات Atom و Brackets و JetBrains WebStorm [ 40 ] [ 41 ] و Microsoft Visual Studio (مع أدوات Node.js لـ Visual Studio [ 42 ] أو TypeScript مع تعريفات Node [ 43 ] [ 44 ] [ 45 ] [ 46 ] ) و NetBeans [ 47 ] وNodeclipse IDE Studio [ 48 ] ( المبني على Eclipse ) و Visual Studio Code [ 49 ] [ 50 ] . كما تدعم بعض بيئات التطوير المتكاملة عبر الإنترنت Node.js، مثل Codeanywhere و Eclipse IDE و Cloud9 IDE ومحرر التدفق المرئي في Node-RED .
يتم دعم Node.js عبر عدد من منصات الاستضافة السحابية مثل Jelastic و Google Cloud Platform و AWS Elastic Beanstalk و Azure Web Apps و Joyent .
الإصدارات
تُصدر الإصدارات الرئيسية الجديدة من Node.js من الفرع الرئيسي على GitHub كل ستة أشهر. تُصدر الإصدارات ذات الأرقام الزوجية في أبريل، والإصدارات ذات الأرقام الفردية في أكتوبر. عند إصدار نسخة فردية جديدة، تنتقل النسخة الزوجية السابقة إلى دعم طويل الأمد (LTS)، مما يمنحها 12 شهرًا من الدعم الفعال بدءًا من تاريخ تصنيفها كـ LTS. بعد انقضاء هذه الأشهر الـ 12، يحصل إصدار LTS على 18 شهرًا إضافيًا من دعم الصيانة. تتلقى النسخة الفعالة تحديثات غير مؤثرة على الإصدارات السابقة بعد بضعة أسابيع من دمجها في الإصدار الحالي. أما إصدار الصيانة، فيتلقى فقط الإصلاحات الهامة وتحديثات التوثيق. [ 51 ] يتولى فريق عمل LTS إدارة الاستراتيجية والسياسة بالتعاون مع اللجنة التوجيهية الفنية لمؤسسة Node.js.
| الإصدار [ 52 ] | حالة | الاسم الرمزي | تاريخ الافراج عنه | نهاية الصيانة |
|---|---|---|---|---|
| غير مدعوم: 0.10.x | غير مدعوم: نهاية العمر الافتراضي | 2013-03-11 | 31-10-2016 | |
| غير مدعوم: 0.12.x | غير مدعوم: نهاية العمر الافتراضي | 2015-02-06 | 31-12-2016 | |
| غير مدعوم: 4.x | غير مدعوم: نهاية العمر الافتراضي | الأرجون [ 51 ] | 2015-09-08 | 30 أبريل 2018 |
| غير مدعوم: 5.x | غير مدعوم: نهاية العمر الافتراضي | 2015-10-29 | 30-06-2016 | |
| غير مدعوم: 6.x | غير مدعوم: نهاية العمر الافتراضي | البورون [ 51 ] | 2016-04-26 | 30 أبريل 2019 |
| غير مدعوم: 7.x | غير مدعوم: نهاية العمر الافتراضي | 2016-10-25 | 30-06-2017 | |
| غير مدعوم: 8.x | غير مدعوم: نهاية العمر الافتراضي | الكربون [ 51 ] | 30-05-2017 | 2019-12-31 |
| غير مدعوم: 9.x | غير مدعوم: نهاية العمر الافتراضي | 2017-10-01 | 30-06-2018 | |
| غير مدعوم: 10.x | غير مدعوم: نهاية العمر الافتراضي | دوبنيوم [ 51 ] | 2018-04-24 | 2021-04-30 |
| غير مدعوم: 11.x | غير مدعوم: نهاية العمر الافتراضي | 2018-10-23 | 2019-06-01 | |
| غير مدعوم: 12.x | غير مدعوم: نهاية العمر الافتراضي | الإربيوم [ 51 ] | 2019-04-23 | 30 أبريل 2022 |
| غير مدعوم: 13.x | غير مدعوم: نهاية العمر الافتراضي | 2019-10-22 | 2020-06-01 | |
| غير مدعوم: 14.x | غير مدعوم: نهاية العمر الافتراضي | الفيرميوم [ 51 ] | 2020-04-21 | 2023-04-30 |
| غير مدعوم: 15.x | غير مدعوم: نهاية العمر الافتراضي | 2020-10-20 | 2021-06-01 | |
| غير مدعوم: 16.x | غير مدعوم: نهاية العمر الافتراضي | الغاليوم [ 51 ] | 2021-04-20 | 2023-09-11 [ 53 ] |
| غير مدعوم: 17.x | غير مدعوم: نهاية العمر الافتراضي | 2021-10-19 | 2022-06-01 | |
| غير مدعوم: 18.x | غير مدعوم: نهاية العمر الافتراضي | الهيدروجين [ 51 ] | 2022-04-19 | 2025-04-30 |
| غير مدعوم: 19.x | غير مدعوم: نهاية العمر الافتراضي | 2022-10-18 | 2023-06-01 | |
| غير مدعوم: 20.x | غير مدعوم: نهاية العمر الافتراضي | الحديد [ 54 ] | 2023-04-18 | 2026-04-30 |
| غير مدعوم: 21.x | غير مدعوم: نهاية العمر الافتراضي | [ 51 ] | 2023-10-17 | 2024-06-01 |
| الإصدارات المدعومة: 22.x | الدعم: صيانة LTS | جود [ 54 ] [ 51 ] | 2024-04-24 | 2027-04-30 |
| غير مدعوم: 23.x | غير مدعوم: نهاية العمر الافتراضي | [ 51 ] | 2024-10-15 | 2025-06-01 |
| الإصدارات المدعومة: 24.x | مدعوم: دعم طويل الأمد نشط | كريبتون [ 54 ] | 2025-04-22 | 2028-04-30 |
| غير مدعوم: 25.x | غير مدعوم: نهاية العمر الافتراضي | 2025-10-15 [ 55 ] | 2026-06-01 | |
| أحدث إصدار: 26.x | أحدث إصدار: الإصدار الحالي | الليثيوم [ 54 ] | 2026-05-05 [ 56 ] | 2029 |
| الإصدار المستقبلي: 28.x | النسخة المستقبلية: مخطط لها | المغنيسيوم [ 54 ] | 2027 | 2030 |
| الإصدار المستقبلي: 30.x | النسخة المستقبلية: مخطط لها | نيون [ 54 ] | 2028 | 2031 |
| الإصدار المستقبلي: 32.x | النسخة المستقبلية: مخطط لها | الأكسجين [ 54 ] | 2029 | 2032 |
| الإصدار المستقبلي: 34.x | النسخة المستقبلية: مخطط لها | البلاتين [ 54 ] | 2030 | 2033 |
أسطورة: غير مدعوم مدعوم أحدث إصدار نسخة معاينة الإصدار المستقبلي | ||||
التفاصيل الفنية
Node.js هي بيئة تشغيل جافا سكريبت تعالج الطلبات الواردة في حلقة تسمى حلقة الأحداث .
المكونات الداخلية
يستخدم Node.js مكتبة libuv داخليًا لمعالجة الأحداث غير المتزامنة. تُعدّ libuv طبقة تجريدية لوظائف الشبكة ونظام الملفات على أنظمة Windows وأنظمة POSIX مثل Linux و macOS و OSS on NonStop و Unix. يعتمد Node.js على nghttp2 لدعم بروتوكول HTTP. بدءًا من الإصدار 20، يستخدم Node.js مكتبة ada التي توفر توافقًا مُحدّثًا مع معايير WHATWG لعناوين URL . بدءًا من الإصدار 19.5، يستخدم Node.js مكتبة simdutf للتحقق السريع من ترميز Unicode وتحويله. بدءًا من الإصدار 21.3، يستخدم Node.js مكتبة simdjson لتحليل JSON بسرعة.
عملية ربط الخيوط
يعمل Node.js على حلقة أحداث أحادية الخيط ، باستخدام استدعاءات إدخال/إخراج غير حظرية ، مما يسمح له بدعم عشرات الآلاف من الاتصالات المتزامنة دون تكبد تكلفة تبديل سياق الخيط . [ 57 ] يهدف تصميم مشاركة خيط واحد بين جميع الطلبات التي تستخدم نمط المراقب إلى بناء تطبيقات عالية التزامن، حيث يجب على أي دالة تُجري عمليات إدخال/إخراج استخدام دالة رد نداء . ولمواكبة حلقة الأحداث أحادية الخيط، يستخدم Node.js مكتبة libuv ، التي بدورها تستخدم مجموعة خيوط ثابتة الحجم تتولى بعض عمليات الإدخال/الإخراج غير المتزامنة غير الحظرية. [ 8 ]
تتولى مجموعة الخيوط تنفيذ المهام المتوازية في Node.js. يقوم الخيط الرئيسي بإرسال المهام إلى قائمة انتظار المهام المشتركة، والتي بدورها تسحبها الخيوط في مجموعة الخيوط وتنفذها. تُترجم وظائف النظام غير المتزامنة بطبيعتها، مثل وظائف الشبكات، إلى مقابس غير متزامنة على جانب النواة، بينما تعمل وظائف النظام المتزامنة بطبيعتها، مثل عمليات إدخال/إخراج الملفات، بطريقة متزامنة على خيوطها الخاصة. عندما يُكمل أحد الخيوط في مجموعة الخيوط مهمةً ما، يُبلغ الخيط الرئيسي بذلك، والذي بدوره يستيقظ وينفذ دالة الاستدعاء المُسجلة.
من عيوب هذا النهج أحادي الخيوط أن Node.js لا يسمح بالتوسع الرأسي عن طريق زيادة عدد أنوية المعالج في الجهاز الذي يعمل عليه دون استخدام وحدة إضافية، مثل cluster [ 58 ] أو StrongLoop Process Manager [ 59 ] أو pm2 [ 60 ] . مع ذلك، يمكن للمطورين زيادة العدد الافتراضي للخيوط في مجمع خيوط libuv. ومن المرجح أن يقوم نظام تشغيل الخادم بتوزيع هذه الخيوط على عدة أنوية [ 61 ] . مشكلة أخرى هي أن العمليات الحسابية طويلة الأمد والمهام الأخرى التي تستهلك موارد المعالج بشكل كبير تُجمّد حلقة الأحداث بأكملها حتى اكتمالها.
محرك V8
محرك V8 هو محرك تنفيذ جافا سكريبت، وقد صُمم في البداية لمتصفح جوجل كروم . ثم أتاحته جوجل كمصدر مفتوح في عام 2008. مكتوب بلغة C++ ، يقوم V8 بتحويل كود جافا سكريبت المصدر إلى كود الآلة الأصلي أثناء التشغيل . [ 8 ] اعتبارًا من عام 2016، يتضمن أيضًا Ignition، وهو مترجم لغة البايت كود .
إدارة الحزم
npm هو مدير الحزم المثبت مسبقًا لمنصة خادم Node.js. يقوم بتثبيت برامج Node.js من سجل npm، وينظم تثبيت وإدارة برامج Node.js التابعة لجهات خارجية.
حلقة الأحداث
يسجل Node.js نفسه لدى نظام التشغيل، فيُعلمه النظام بأحداث الإدخال/الإخراج غير المتزامنة ، مثل الاتصالات الجديدة. ضمن بيئة تشغيل Node.js، تُفعّل الأحداث دوال رد نداء، ويُعالج كل اتصال كوحدة ذاكرة صغيرة . تقليديًا، كانت عمليات أو خيوط نظام التشغيل الثقيلة نسبيًا تتولى معالجة كل اتصال. يستخدم Node.js حلقة أحداث للإدخال/الإخراج المتزامن، بدلًا من العمليات أو الخيوط. [ 62 ] على عكس الخوادم الأخرى التي تعتمد على الأحداث، لا تحتاج حلقة أحداث Node.js إلى استدعاء صريح. بدلًا من ذلك، تُعرّف دوال رد النداء، ويدخل الخادم تلقائيًا في حلقة الأحداث عند انتهاء تعريف دالة رد النداء. يخرج Node.js من حلقة الأحداث عندما لا يتبقى أي دوال رد نداء أخرى لتنفيذها.
WebAssembly
يدعم Node.js تقنية WebAssembly ، ومنذ الإصدار Node 14، أصبح لديه دعم تجريبي لـ WASI ، وهي واجهة نظام WebAssembly.
الربط الأصلي
توفر Node.js طريقةً لإنشاء "إضافات" عبر واجهة برمجة تطبيقات (API) مبنية على لغة C تُسمى N-API، والتي يمكن استخدامها لإنتاج .nodeوحدات قابلة للتحميل (الاستيراد) من شفرة مصدرية مكتوبة بلغة C/C++. [ 63 ] يمكن تحميل هذه الوحدات مباشرةً في الذاكرة وتنفيذها من داخل بيئة JavaScript كوحدات CommonJS بسيطة. يعتمد تطبيق N-API على كائنات Node.js وV8 الداخلية المكتوبة بلغة C/C++، مما يتطلب من المستخدمين استيراد ( #include ) ملفات رأسية خاصة بـ Node.js إلى شفرتهم المصدرية الأصلية. [ 63 ]
نظرًا لأن واجهة برمجة تطبيقات Node.js عرضة لتغييرات جذرية على مستوى الملفات الثنائية، يجب بناء الوحدات البرمجية وتوزيعها لتتوافق مع إصدارات محددة من Node.js لضمان عملها بشكل صحيح. ولمعالجة هذه المشكلة، قدمت جهات خارجية أغلفة برمجية مفتوحة المصدر بلغة C/C++ فوق واجهة برمجة التطبيقات، مما يخفف من حدة المشكلة جزئيًا. فهي تُبسط الواجهات، ولكنها قد تُضيف تعقيدًا إضافيًا يتعين على القائمين على الصيانة التعامل معه. وعلى الرغم من أن الوظائف الأساسية لـ Node.js موجودة في مكتبة JavaScript مدمجة، إلا أنه يُمكن استخدام الوحدات البرمجية المكتوبة بلغة C++ لتعزيز إمكانيات التطبيقات وتحسين أدائها.
لإنتاج مثل هذه الوحدات، يحتاج المرء إلى مترجم C++ مناسب ورؤوس ضرورية (عادة ما يتم شحن هذه الرؤوس مع Node.js نفسه)، على سبيل المثال، gcc أو clang أو MSVC++ .
تُشبه واجهة برمجة التطبيقات N-API واجهة Java الأصلية . كما يعتمد كل من OpenHarmony و ArkTS واجهة N-API، مع إعادة كتابة التنفيذ الداخلي. [ 64 ]
إدارة المشروع
في عام 2015، بدأت فروع مختلفة من مجتمع Node.js الأوسع نطاقًا العمل تحت مظلة مؤسسة Node.js المحايدة للبائعين. والهدف المعلن للمنظمة هو "تمكين التبني الواسع النطاق والمساعدة في تسريع تطوير Node.js والوحدات النمطية الأخرى ذات الصلة من خلال نموذج حوكمة مفتوح يشجع المشاركة والمساهمة التقنية وإطار عمل للإشراف طويل الأجل من قبل نظام بيئي يستثمر في نجاح Node.js". [ 65 ]
اللجنة التوجيهية الفنية لمؤسسة Node.js هي الهيئة الفنية المسؤولة عن إدارة المؤسسة. تتولى اللجنة مسؤولية مستودع Node.js الأساسي، بالإضافة إلى المشاريع التابعة والمجاورة. وعادةً ما تُفوّض اللجنة إدارة هذه المشاريع إلى فرق عمل أو لجان. [ 66 ] وتُعدّ مجموعة LTS، المسؤولة عن إدارة الإصدارات المدعومة على المدى الطويل، إحدى هذه المجموعات. وتشمل المجموعات الحالية الأخرى: الموقع الإلكتروني، وStreams، والبناء، والتشخيص، والتدويل، والتوعية، وDocker، وواجهة برمجة تطبيقات الإضافات، وقياس الأداء، وتحليل ما بعد التنفيذ، والتدويل الدولي، والتوثيق، والاختبار. [ 67 ]
في أغسطس 2017، استقال ثلث أعضاء لجنة الخدمة الفنية بسبب خلاف يتعلق بمدونة قواعد السلوك الخاصة بالمشروع. وجاءت استقالتهم بعد فشل التصويت في عزل أحد الأعضاء من المجموعة القيادية، والذي قُدِّمت ضده عدة شكاوى. [ 68 ]
| اسم المستخدم | الاسم الكامل |
|---|---|
| aduh95 | أنطوان دو هاميل |
| anonrig | ياغيز نيزيبلي |
| بنجامينغر | بنيامين غرينباوم |
| BridgeAR | روبن بريدج ووتر |
| جيريشبوناتيل | جيريش بوناثيل |
| جاسنيل | جيمس إم سنيل |
| جويتشيونغ | جوي تشيونغ |
| أسطورة | تشنغ تشونغ وو |
| ماركو إيبوليتو | ماركو إيبوليتو |
| مكولينا | ماتيو كولينا |
| mhdawson | مايكل داوسون |
| رافائيل جي إس إس | رافائيل غونزاغا |
| ريتشاردلو | ريتشارد لاو |
| روناغ | روبرت ناجي |
| ruyadorno | روي أدورنو |
| شوغون باندا | باولو إنسونيا |
| تارغوس | مايكل زاسو |
| tniessen | توبياس نيسن |
مراجع
- ↑ "node-v0.x-archive على GitHub" . GitHub . تم الاطلاع عليه بتاريخ 2 أغسطس 2014 .
- ↑ "الإصدار 26.3.0" . 1 يونيو 2026. تم الاطلاع عليه في 1 يونيو 2026 .
- 1 2 "nodejs/node" . GitHub . 13 أبريل 2022.
- ↑ "node/LICENSE at master" . GitHub . مؤسسة Node.js. 17 سبتمبر 2018. تم الاطلاع عليه بتاريخ 17 سبتمبر 2018 .
- ↑ "رخصة معهد ماساتشوستس للتكنولوجيا" . مبادرة المصادر المفتوحة . 17 سبتمبر 2018. تم الاطلاع عليه بتاريخ 17 سبتمبر 2018 .
- ↑ "استطلاع رأي مطوري ستاك أوفرفلو 2025" . ستاك أوفرفلو . تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
- ↑ gcuomo (24 أكتوبر 2013). "جافا سكريبت في كل مكان والأصدقاء الثلاثة (إلى المجهول الأزرق!)" . www.ibm.com . مؤرشف من الأصل في 14 نوفمبر 2013. تم الاطلاع عليه في 24 أكتوبر 2013 .
- 1 2 3 لوران أورسيني (7 نوفمبر 2013). "ما تحتاج لمعرفته حول Node.js" . readwrite.com . مؤرشف من الأصل في 11 نوفمبر 2013. تم الاطلاع عليه في 6 فبراير 2022 .
- ↑ "مؤسسة Node.js - Node.js" . nodejs.org . تم الاطلاع عليه بتاريخ 4 يوليو 2015 .
- ↑ "مشاريع مؤسسة لينكس التعاونية" . linuxfoundation.org . 4 يوليو 2015. تم الاطلاع عليه في 4 يوليو 2015 .
- ↑ "حول Node.js، ولماذا يجب عليك إضافة Node.js إلى مهاراتك؟" . Training.com . 11 سبتمبر 2016. مؤرشف من الأصل في 1 أبريل 2017. تم الاطلاع عليه في 23 أكتوبر 2016 .
- ↑ فريق عمل CNET News (15 أكتوبر 1996). "نتسكيب تشن هجومًا على الشبكة الداخلية" . CNET . تم الاطلاع عليه بتاريخ 20 أبريل 2017 .
- ↑ ريان دال (9 نوفمبر 2010). "Joyent and Node" . مجموعات جوجل . تم الاسترجاع في 5 فبراير 2015 .
- 1 2 3 4 Sams Teach Yourself Node.js in 24 Hours , Sams Publishing, 05-سبتمبر-2012
- ↑ أوبل، مالطا (9 سبتمبر 2009). "مؤتمر JSConf.eu 2009، برلين، ألمانيا" . www.jsconf.eu . تاريخ الاطلاع: 9 سبتمبر 2009 .
- ↑ "ريان دال: عرض تقديمي أصلي حول Node.js" . 8 يونيو 2012. مؤرشف من الأصل في 15 ديسمبر 2021 – عبر www.youtube.com.
- 1 2 3 4 5 6 7 8 9 Node.js الاحترافي: بناء برامج قابلة للتوسع تعتمد على جافا سكريبت ، جون وايلي وأولاده، 1 أكتوبر 2012
- ↑ "أقدم إصدارات npm" . GitHub . تم الاطلاع عليه بتاريخ 27 يوليو 2016 .
- ↑ رياندال (23 يونيو 2011). "نقل Node إلى نظام التشغيل Windows بمساعدة مايكروسوفت" . nodejs.org . تم الاطلاع عليه بتاريخ 17 أبريل 2016 .
- ↑ دال، رايان. "حارس البوابة الجديد" . تم الاطلاع عليه بتاريخ 26 أكتوبر 2013 .
- ^ شلوتر ، إسحاق (15 يناير 2014). "المرحلة التالية من Node.js" . تم الاسترجاع 21 يناير 2014 .
- ↑ أسئلة وأجوبة: لماذا قررت io.js إنشاء نسخة معدلة من Node.js ؟، InfoWorld Tech Watch
- ↑ «مؤسسة Node.js تُعزز التعاون المجتمعي، وتُعلن عن أعضاء جدد، وتُصادق على الحوكمة التقنية» . مؤرشف من الأصل بتاريخ 24 يونيو 2015. تم الاطلاع عليه بتاريخ 4 يوليو 2015 .
- ↑ "مؤسسة Node.js تدمج Node.js و io.js في قاعدة بيانات واحدة في إصدار جديد" . nodejs.org . 14 سبتمبر 2015. تم الاطلاع عليه بتاريخ 28 يناير 2016 .
- ↑ "دمج io.js و Node.js" . medium.com . 19 مايو 2015. تم الاطلاع عليه بتاريخ 27 يونيو 2015 .
- ↑ Io.js، جافا سكريبت I/O ، "تم دمج io.js مع مشروع Node.js مرة أخرى. لن تكون هناك أي إصدارات أخرى من io.js. جميع الميزات الموجودة في io.js متوفرة في Node.js الإصدار 4 وما فوق."
- ↑ "دليل العلامة التجارية" (ملف PDF) . Node.js. مؤسسة OpenJS . تم الاطلاع عليه بتاريخ 22 مارس 2024 .
- ↑ "Node.JS على X: "تعرّف على Rocket Turtle، هناك طرق عديدة 👋"تم الاطلاع عليه بتاريخ 22 مارس 2024 .
- 1 2 3 Node.js لمطوري PHP ، دار نشر O'Reilly Media، 2013
- 1 2 3 أساسيات Node.js ، نشر الحزمة، 10 نوفمبر 2015
- ↑ تحطيم Node.js: جافا سكريبت في كل مكان ، جون وايلي وأولاده، 14 أغسطس 2012
- ↑ وحدات ، موقع ويب Node.js
- ↑ "ملاحظات إصدار Node v22.6.0 (الحالي)" . nodejs.org . 9 يوليو 2024. تم الاطلاع عليه في 13 أكتوبر 2025 .
- ↑ "قائمة اللغات التي تُترجم إلى جافا سكريبت" . جيت هاب .
- ↑ CoffeeScript على Node.js. O'Reilly Media, Inc. 15 أبريل 2013. ISBN 9781449316846تم الاطلاع عليه بتاريخ 17 مايو 2015 .
- ↑ مؤسسة Node.js. "تثبيت Node.js عبر مدير الحزم" . Node.js. تم الاطلاع عليه بتاريخ 19 مايو 2019 .
- ↑ "bomBora - Node.js for NonStop" . infrasoft.com.au . Infrasoft. مؤرشف من الأصل بتاريخ 11 مارس 2018. تم الاطلاع عليه بتاريخ 14 أغسطس 2015 .
- ↑ دليل Express.js: الكتاب الشامل حول Express.js ، أزات مردان، 28 مايو 2014
- ↑ Edge.js يسد الفجوة بين Node.js و .NET ، TechRepublic، توني باتون، 1 يوليو 2014
- ↑ يدعم WebStorm التكامل مع بيئة تشغيل Node.js، راجع قسم المساعدة في WebStorm
- ↑ تشغيل وتصحيح أخطاء Node.js ، مساعدة WebStorm
- ↑ "أدوات Node.js لـ Visual Studio" . microsoft.com . تم الاطلاع عليه في 1 فبراير 2016 .
- ↑ soywiz/typescript-node-definitions تعريفات TypeScript لبعض وحدات node.js الشائعة ، GitHub
- ↑ DefinitelyTyped ، GitHub
- ↑ "مستودع تعريفات أنواع TypeScript عالية الجودة" . definitelytyped.org . مؤرشف من الأصل في 3 فبراير 2016.
- ↑ ImageBoard، تطبيق Node.js + Express + MongoDB مبني باستخدام TypeScript على الخادم. مؤرشف في 18 مايو 2019 في Wayback Machine ، نماذج TypeScript
- ↑ كريل، بول (10 نوفمبر 2015). "Node.js تحتل مركز الصدارة في NetBeans 8.1" . infoworld.com . InfoWorld . تم الاطلاع عليه بتاريخ 10 نوفمبر 2015 .
- ↑ Nodeclipse، Enide – تطوير Node.JS في Eclipse ، موقع Nodeclipse
- ↑ مرحباً بكم في برنامج Visual Studio Code (مع NodeJS) ، القناة 9، مايكروسوفت
- ↑ تطبيقات Node.js باستخدام VS Code ، Visual Studio Code
- 1 2 3 4 5 6 7 8 9 10 11 12 "nodejs/Release" . GitHub . تم الاطلاع عليه في 3 مايو 2018 .
- ↑ "الإصدارات" . Node.js. 23 أغسطس 2023.
- ↑ تقديم موعد انتهاء دعم Node.js 16 ، موقع Node.js الإلكتروني
- 1 2 3 4 5 6 7 8 "Node.JS CODENAMES.md" . GitHub . تم الاطلاع عليه في 6 سبتمبر 2023 .
- ↑ "Node.js — Node.js v25.0.0 (الحالي)" . nodejs.org . تم الاطلاع عليه بتاريخ 21 أكتوبر 2025 .
- ↑ "Node.js — Node.js v26.0.0 (الحالي)" . nodejs.org . تم الاطلاع عليه في 5 مايو 2026 .
- ↑ "Node.js مع مليون اتصال متزامن!" . مدونة كوستيك . 19 أغسطس 2012.
- ↑ "وحدة التجميع في Node.js" . nodejs.org . تم الاطلاع عليه بتاريخ 19 أكتوبر 2017 .
- ↑ "مدير عمليات StrongLoop" . strong-pm.io .
- ↑ "GitHub - Unitech/pm2: مدير عمليات الإنتاج لتطبيقات Node.js مع موازن تحميل مدمج" . GitHub . 12 يونيو 2021.
- ↑ ألكسندر كاسيوك (22 أبريل 2015). "حول مشاكل الخيوط في node.js - معالجة المستقبل" .
- ↑ حول Node.js ، موقع Node.js الإلكتروني
- 1 2 "إضافات C++ | توثيق Node.js الإصدار 14.12.0" . nodejs.org . تم الاطلاع عليه بتاريخ 26 سبتمبر 2020 .
- ↑王嘉栋; 宋冰清; 王盛荣؛ 刘贺 (2025). "基于矿鸿操作系统的采煤机远程监控系统软件设计" [ تصميم برمجيات لنظام المراقبة عن بعد لآلات القص استنادًا إلى نظام التشغيل MineHarmony ] . آلات مناجم الفحم (باللغة الصينية). 46 (4): 216-218 . دوى : 10.13436/J.MKJX.202504057 . ردمك 1003-0794 . ويكي بيانات Q139548468 .
- ↑ مؤسسة Node.js. "مؤسسة Node.js | Node.js" . nodejs.org . تم الاطلاع عليه بتاريخ 8 مارس 2017 .
- ↑ "nodejs/TSC" . GitHub . تم الاطلاع عليه بتاريخ 8 مارس 2017 .
- ↑ مؤسسة Node.js. "مجموعات العمل | Node.js" . nodejs.org . مؤرشف من الأصل في 27 فبراير 2017. تم الاطلاع عليه في 8 مارس 2017 .
- ↑ ويتاكر، زاك، بعد انهيار الحوكمة، قادة Node.js يناضلون من أجل بقائها ، ZDNet، 25 أغسطس 2017
- ↑ "tsc-voting-members" . Github.com . 16 مايو 2024.
للمزيد من القراءة
- هيوز-كراوتشر، توم؛ ويلسون، مايك (أبريل 2012)، التشغيل والبدء باستخدام Node.js ، دار نشر أورايلي ميديا ، رقم ISBN 978-1-4493-9858-3
- أورنبو، جورج (سبتمبر 2012)، سامز: تعلم Node.js بنفسك في 24 ساعة ، دار نشر سامز ، رقم ISBN 978-0-672-33595-2
- تيكسيرا، بيدرو (أكتوبر 2012)، Professional Node.js ، John Wiley & Sons ، ISBN 978-1-118-22754-1
- راندال إل. شوارتز وآرون نيوكومب (9 يناير 2013). "الحلقة 237: Node.js" . twit.tv/show/floss-weekly (بودكاست). TWiT.tv. يبدأ الحدث عند الدقيقة 1:08:13 . تم الاطلاع عليه في 9 يناير 2013 .
- كوري جاكنهايمر (أكتوبر 2013)، وصفات Node.js: نهج حل المشكلات ، Apress ، ISBN 978-1-4302-6058-5
روابط خارجية
- برنامج 2009
- برنامج مجاني مكتوب بلغة C++
- برنامج مجاني مكتوب بلغة جافا سكريبت
- مكتبات جافا سكريبت
- جويينت
- مشاريع مؤسسة لينكس
- برنامج مرخص بموجب ترخيص MIT
- أنظمة وقت التشغيل
