Node.js هو نظام برامج مصمم لكتابة تطبيقات إنترنت قابلة للتوسع كخوادم الويب.[7] تم اختياره بواسطة InfoWorld لجائزة تقنية العام في 2012.[8]
نوع |
event-driven programming language |
---|---|
نظام التشغيل | |
مواقع الويب |
(الإنجليزية) nodejs.org (الفرنسية) nodejs.org/fr |
المطورون |
Node.js Foundation |
---|---|
لغة البرمجة |
سي++[2] — جافا سكريبت — سي |
الإصدار الأول | |
الإصدار الأخير |
14.3.0 (19 مايو 2020)[5] |
المستودع | |
الرخصة |
X11 license [6] |
أنشئت Node.js على يد ريان دال ابتداءً في عام 2009، وقامت برعاية نموها Joyent، مشغله.[9][10] يتألف Node.js من في 8 التابع لجوجل مع العديد من المكتبات المدمجة. وأخذت بعض مواصفات مشروع CommonJS.[11]
تكتب برامج node.js بلغة الجافاسكربت، باستخدام نمط حدثّي التوجه، إدخال وإخراج غير متزامنين للحد من النفقات وتحقيق أكبر قدر من قابلية التوسع.[12] وعلى عكس أغلب برامج الجافاسكريبت فهي لا تشتغل على متصفح الويب، ولكن عوضا عن ذلك فيتم تشغيلها من طرف الخادم.
أمثلة
تطبيق كامل لبرنامج "أهلا بالعالم" كخادم ويب:
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);
مميزات Node.js
من مميزات Node.js سرعة الآداة مع المحافظة على الفاعلية، فسرعتها في إرسال الرسائل البريدية هي 10 أضعاف سرعة بي إتش بي، مع عدد أقل من العمليات الغير ناجحة، من مميزاتها أيضا أنك تستدعي المكتبات التي تعمل عليها في الوقت الذي تريد، الأمر الذي يفضي إلى أفضل استغلال للموارد.
سرعة Node.js هي نتيجة لسرعة المحرك الذي تستخدمه الذي يعتبر نواتها. تقوم Node.js بمعالجة النص المصدري سطرا سطرا، من خلال خيط واحد على عكس ما يحدث في PHP مثلا، المعنى أنه لو زار 1000 شخص موقعا يعمل على Node.js فسيتم خدمتهم بالتتالي، المشكل أنه لو أضطر شخص ما لانتظار عملية ما مدة دقيقة فيجب على الكل الانتظار حتى تنتهي تلك العملية، إلا أنه يكمن تفادي هذا من خلال بنية الجافاسكرب التي تمكن من استدعاء دالة ما (أو مع صياغتها) عند الانتهاء من عملية ما والمرور للعملية الموالية، ككل تمكن Node.js من بناء تطبيقات كبيرة، أحيانا بسهولة، إلا أن بنية الجافاسكريبت الشاذة تجعل الأمر محبط، يجدر بالذكر أن Node.js تعمل على نواة معالج واحدة، كما أن يجب تنشيط الملف بعد برمجته ليتحول إلى Thread مستعد للرد على أي طلب داخل الوب، في النهاية يمكن القول أن Node.js ليست تلك الوسيلة بعد التي يمكنها التعامل مع مختلف المتطلبات -و هذا من أسباب سرعتها- إلا أنه لا يمكن لوم أحد على ذلك ما دامت لم تتجاوز الإصدار 1.0 بعد، إلا أنها يمكنها تقديم حلول سحرية للأنشطة التي تتطلب تبادل بيانات بين مختلف الزوار في الوقت الحقيقي (Real-Time).
مجتمع
Node.js لديه مجتمع مطورين متمركزين بقائمتين بريديتين، ، nodejs و nodejs-dev, وقناة آي آر سي #node.js على فرينود. يجتمع المجتمع في NodeConf، مؤتمر مطورين سنوي يركز على Node.js.[13]
لغات أخرى
تمت كتابت بيئات مشابهة في لغات برمجة أخرى تشمل:
مقالات ذات صلة
مراجع
- https://github.com/janeasystems/nodejs-mobile
- The node Open Source Project on Open Hub: Languages Page — تاريخ الاطلاع: 18 أكتوبر 2018 — الرخصة: رخصة أباتشي، الإصدار 2.0
- node-v0.x-archive on GitHub
- node-v0.x-archive on GitHub — تاريخ الاطلاع: 2 سبتمبر 2016
- Release 14.3.0 — تاريخ الاطلاع: 20 مايو 2020 — تاريخ النشر: 19 مايو 2020
- https://github.com/nodejs/node/blob/master/LICENSE
- Wait, What's Node.js Good for Again?, By Klint Finley, January 25, 2011, ReadWriteHack نسخة محفوظة 14 أكتوبر 2012 على موقع واي باك مشين.
- "Node.js Selected by InfoWorld for 2012 Technology of the Year Award". MarketWatch. January 11, 2012. مؤرشف من الأصل في 05 مارس 201226 يناير 2012.
- Why Everyone Is Talking About Node, By Jolie O'Dell, March 10, 2011, Mashable نسخة محفوظة 02 أغسطس 2017 على موقع واي باك مشين.
- Alex Handy (2011-06-24). "Node.js pushes JavaScript to the server-side". SDTimes. مؤرشف من الأصل في 1 يونيو 201304 سبتمبر 2011.
- Implementations/node.js - CommonJS Spec Wiki نسخة محفوظة 30 أغسطس 2017 على موقع واي باك مشين.
- Cade Metz (1st March 2011). "The Node Ahead: JavaScript leaps from browser into future". The Register. مؤرشف من الأصل في 6 نوفمبر 2018.
- NodeConf Schedule Announced, By Klint Finley, April 7, 2011, ReadWriteHack نسخة محفوظة 17 سبتمبر 2012 على موقع واي باك مشين.