انتقل إلى المحتوى

نود.جي إس

من ويكيبيديا، الموسوعة الحرة

نود.جي إس (بالإنجليزية: Node.js)‏ هو محرك جافاسكريبت بالوقت الفعلي مفتوح المصدر ومُصمم لكتابة تطبيقات متعدد المنصات، وكذلك تطبيقات سهلة التوسيع كخوادم الويب.[9] تم اختياره بواسطة InfoWorld لجائزة تقنية العام في 2012.[10] يسمح نود.جي إس للمبرمجين بكتابة برمجيات بلغة جافاسكربت تعمل خارج مُتصفح الويب، ويقوم NodeJS بترجمتها إلى لغة تفهمها الآلة من خلال مُحرك جافاسكربت V8 المصمم من طرف جوجل، والمستخدم في متصفح كروم وتستخدمه باقي المتصفحات المبنية على نواة كروميوم، هذا يمكن المبرمجين من برمجة العديد من الأمور باستخدام لغة جافاسكربت وجعلها تعمل خارج المتصفح، كبرمجة الواجهة الخلفية للمواقع (back-end)، برمجة سكربت يعمل على سطر الآوامر، وكذلك برمجة تطبيقات بواجهات رُسومية باستخدام تقنيات مثل آلكترون (Electron).

أُنشئ نود.جي إس على يد ريان دال ابتداءً في عام 2009، وقامت برعاية نموها Joyent، مشغله.[11][12] يتألف نود.جي إس من في 8 التابع لجوجل مع العديد من المكتبات المدمجة. وأخذت بعض مواصفات مشروع CommonJS.[13]

تكتب برامج نود.جي إس بلغة الجافا سكربت، باستخدام نمط حدثّي التوجه، إدخال وإخراج غير متزامنين للحد من النفقات وتحقيق أكبر قدر من قابلية التوسع.[14] وعلى عكس أغلب برامج الجافاسكريبت فهي لا تشتغل على متصفح الويب، ولكن عوضا عن ذلك فيتم تشغيلها من طرف الخادم.

أمثلة

[عدل]

تطبيق كامل لبرنامج "أهلا بالعالم" كخادم ويب:

var http = require('http');

http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8000);

console.log('Server running at http://localhost:8000/');

خادم ميفاق ضبط الإرسال ينصت لبورت 7000 ويرد بـ'hello' عند الاتصال:

var net = require('net');

net.createServer(function (stream) {
    stream.write('hello\r\n');

    stream.on('end', function () {
        stream.end('goodbye\r\n');
    });

    stream.pipe(stream);
}).listen(7000);

مميزات نود.جي إس

[عدل]

من مميزات نود.جي إس سرعة الآداة مع المحافظة على الفاعلية، فسرعتها في إرسال الرسائل البريدية هي 10 أضعاف سرعة بي إتش بي، مع عدد أقل من العمليات الغير ناجحة، من مميزاتها أيضا أنك تستدعي المكتبات التي تعمل عليها في الوقت الذي تريد، الأمر الذي يفضي إلى أفضل استغلال للموارد.

سرعة نود.جي إس هي نتيجة لسرعة المحرك الذي تستخدمه الذي يعتبر نواتها. تقوم نود.جي إس بمعالجة النص المصدري سطرا سطرا، من خلال خيط واحد على عكس ما يحدث في PHP مثلا، المعنى أنه لو زار 1000 شخص موقعا يعمل على نود.جي إس فسيتم خدمتهم بالتتالي، المشكل أنه لو أضطر شخص ما لانتظار عملية ما مدة دقيقة فيجب على الكل الانتظار حتى تنتهي تلك العملية، إلا أنه يكمن تفادي هذا من خلال بنية الجافا سكربت التي تمكن من استدعاء دالة ما (أو مع صياغتها) عند الانتهاء من عملية ما والمرور للعملية الموالية، ككل تمكن نود.جي إس من بناء تطبيقات كبيرة، أحيانا بسهولة، إلا أن بنية الجافاسكريبت الشاذة تجعل الأمر محبط، يجدر بالذكر أن نود.جي إس تعمل على نواة معالج واحدة، كما أن يجب تنشيط الملف بعد برمجته ليتحول إلى Thread مستعد للرد على أي طلب داخل الوب، في النهاية يمكن القول أن نود.جي إس ليست تلك الوسيلة بعد التي يمكنها التعامل مع مختلف المتطلبات -و هذا من أسباب سرعتها- إلا أنه لا يمكن لوم أحد على ذلك ما دامت لم تتجاوز الإصدار 1.0 بعد، إلا أنها يمكنها تقديم حلول سحرية للأنشطة التي تتطلب تبادل بيانات بين مختلف الزوار في الوقت الحقيقي (Real-Time).

ريان دال
ريان دال

المجتمع

[عدل]

نود.جي إس لديه مجتمع مطورين متمركزين بقائمتين بريديتين،، nodejs و nodejs-dev, وقناة آي آر سي #نود.جي إس على فرينود. يجتمع المجتمع في NodeConf، مؤتمر مطورين سنوي يركز على نود.جي إس.[15]

لغات أخرى

[عدل]

تمت كتابة بيئات مشابهة في لغات برمجة أخرى تشمل:

انظر أيضًا

[عدل]

مراجع

[عدل]
  1. ^ ا ب وصلة مرجع: https://github.com/nodejs/node/blob/master/LICENSE.
  2. ^ ا ب ج مذكور في: دليل البرمجيات الحرة. دليل البرمجيات الحرة: node.js. الوصول: 8 أغسطس 2021.
  3. ^ ا ب الوصول: 8 يناير 2017. وصلة مرجع: https://api.github.com/repos/nodejs/node.
  4. ^ "The node Open Source Project on Open Hub: Languages Page". أهلوه. اطلع عليه بتاريخ 2018-10-18.The node Open Source Project on Open Hub: Languages Page&rft_id=https://www.openhub.net/p/node/analyses/latest/languages_summary&rfr_id=info:sid/ar.wikipedia.org:نود.جي إس" class="Z3988">
  5. ^ "node-v0.x-archive on GitHub". اطلع عليه بتاريخ 2016-09-02.node-v0.x-archive on GitHub&rft_id=https://github.com/nodejs/node-v0.x-archive/tags?after=v0.0.4&rfr_id=info:sid/ar.wikipedia.org:نود.جي إس" class="Z3988">
  6. ^ ا ب "Release 23.3.0". 20 نوفمبر 2024. اطلع عليه بتاريخ 2024-11-23.Release 23.3.0&rft.date=2024-11-20&rft_id=https://github.com/nodejs/node/releases/tag/v23.3.0&rfr_id=info:sid/ar.wikipedia.org:نود.جي إس" class="Z3988">
  7. ^ الوصول: 7 أكتوبر 2016.
  8. ^ "node/LICENSE at master · nodejs/node · GitHub". اطلع عليه بتاريخ 2020-11-27.node/LICENSE at master · nodejs/node · GitHub&rft_id=https://github.com/nodejs/node/blob/master/LICENSE&rfr_id=info:sid/ar.wikipedia.org:نود.جي إس" class="Z3988">
  9. ^ Wait, What's Node.js Good for Again?, By Klint Finley, January 25, 2011, ReadWriteHack نسخة محفوظة 14 أكتوبر 2012 على موقع واي باك مشين. [وصلة مكسورة]
  10. ^ "Node.js Selected by InfoWorld for 2012 Technology of the Year Award". MarketWatch. 11 يناير 2012. مؤرشف من الأصل في 2012-03-05. اطلع عليه بتاريخ 2012-01-26.
  11. ^ Why Everyone Is Talking About Node, By Jolie O'Dell, March 10, 2011, Mashable نسخة محفوظة 02 أغسطس 2017 على موقع واي باك مشين.
  12. ^ Alex Handy (24 يونيو 2011). "Node.js pushes JavaScript to the server-side". SDTimes. مؤرشف من الأصل في 2013-06-01. اطلع عليه بتاريخ 2011-09-04.
  13. ^ Implementations/node.js - CommonJS Spec Wiki نسخة محفوظة 30 أغسطس 2017 على موقع واي باك مشين.
  14. ^ Cade Metz (1st March 2011). "The Node Ahead: JavaScript leaps from browser into future". The Register. مؤرشف من الأصل في 6 نوفمبر 2018. {{استشهاد بخبر}}: تحقق من التاريخ في: |تاريخ= (مساعدة) واستعمال الخط المائل أو الغليظ غير مسموح: |ناشر= (مساعدة)
  15. ^ NodeConf Schedule Announced, By Klint Finley, April 7, 2011, ReadWriteHack نسخة محفوظة 17 سبتمبر 2012 على موقع واي باك مشين. [وصلة مكسورة]

وصلات خارجية

[عدل]