Node.JS

Node.js هو وقت تشغيل JavaScript مفتوح المصدر وعبر الأنظمة الأساسية يعمل على الخوادم. منذ إطلاقها في عام 2009 ، أصبحت هذه المنصة شائعة للغاية وتلعب دورًا مهمًا للغاية في مجال تطوير الويب هذه الأيام
للحصول على المقال كاملا على Node.JS ...

إظهار عامل التصفية
مرشحات الاستضافة
A2 Themes & Host Me Filter

نظام تشغيل

مساحة القرص

ذاكرة وصول العشوائي

نوع القرص

النوى CPU

فرز

النتيجة - 0
RedSwitches Logo
RedSwitches

RedSwitches

Pearl
$6.94 /شهريا


مواقع الخادم


RedSwitches Servers in Netherlandsهولندا RedSwitches Servers in Unionالولايات المتحدة الأمريكية RedSwitches Servers in Melbourneأستراليا RedSwitches Servers in Mumbaiالهند RedSwitches Servers in Germanyألمانيا
قارن
النتيجة - 0
Hostarina Logo
Hostarina

هوستارينا

Personal
$2.92 /شهريا


مواقع الخادم


Hostarina Servers in Unionالولايات المتحدة الأمريكية Hostarina Servers in Rawalpindiباكستان Hostarina Servers in Munichألمانيا
قارن
النتيجة - 0
Net9 Oy Logo
Net9 Oy

Net9 Oy

Small
$1.13 /شهريا


مواقع الخادم


Net9 Oy Servers in Stockholmالسويد Net9 Oy Servers in Helsinkiفنلندا Net9 Oy Servers in Parisفرنسا
قارن
النتيجة - 0
Heroku Logo
Heroku

هيروكو

Hobby
$7 /شهريا


مواقع الخادم


Heroku Servers in United Statesالولايات المتحدة الأمريكية
قارن
النتيجة - 0
Awareindia.net Logo
Awareindia.net

Awareindia.net

Linux Hosting Plan G
$5.83 /شهريا

قارن
النتيجة - 0
Chemi Cloud Logo
Chemi Cloud

كيمي كلاود

Ionic
$2.95 /شهريا


مواقع الخادم


Chemi Cloud Servers in Bangaloreالهند Chemi Cloud Servers in New Yorkالولايات المتحدة الأمريكية Chemi Cloud Servers in Bucharestرومانيا Chemi Cloud Servers in Londonالمملكة المتحدة Chemi Cloud Servers in Amsterdamهولندا Chemi Cloud Servers in Torontoكندا Chemi Cloud Servers in Sydneyأستراليا
قارن
النتيجة - 0
Oudel Logo
Oudel

عودل

cPanel Hosting 1
$5.95 /شهريا


مواقع الخادم


Oudel Servers in Unionالولايات المتحدة الأمريكية
قارن

 

Node.js

 

 

Node.js هو وقت تشغيل JavaScript مفتوح المصدر وعبر الأنظمة الأساسية يعمل على الخوادم. منذ إطلاقها في عام 2009 ، أصبحت هذه المنصة شائعة للغاية وتلعب دورًا مهمًا للغاية في مجال تطوير الويب هذه الأيام إذا أخذنا في الاعتبار عدد النجوم التي جمعها المشروع على GitHub كمؤشر على الشعبية ، فإن Node.js ، الذي يحتوي على أكثر من 50000 نجمة ، يعد مشروعًا شائعًا جدًا.

 

تم بناء النظام الأساسي Node.js على محرك Google V8 JavaScript ، والذي يتم استخدامه في متصفح Google Chrome. تُستخدم هذه المنصة بشكل أساسي لإنشاء خوادم الويب ، لكن نطاقها لا يقتصر على هذا.

 

لنلقِ نظرة على الميزات الرئيسية لـ Node.js.

 

سرعة

 

تعد السرعة من أهم عوامل الجذب في Node.js. يمكن أن تكون شفرة JavaScript التي يتم تنفيذها في Node.js أسرع بمرتين من الشفرة المكتوبة بلغات مجمعة مثل C أو Java ، كما أن ترتيبها من حيث الحجم أسرع من اللغات المفسرة مثل Python أو Ruby السبب في ذلك هو بنية النظام الأساسي غير المحظورة ، وتعتمد النتائج المحددة على المعايير المستخدمة ، ولكن بشكل عام ، تعد Node.js منصة سريعة جدًا.

 

بساطة

 

منصة Node.js سهلة التعلم والاستخدام. في الواقع ، الأمر بسيط للغاية ، خاصة عند مقارنته ببعض منصات الخوادم الأخرى.

 

جافا سكريبت

 

يتم تنفيذ JavaScript في بيئة Node.js. هذا يعني أن الملايين من مطوري الواجهة الأمامية الذين يستخدمون بالفعل JavaScript في المستعرض يمكنهم كتابة كود من جانب الخادم وكود من جانب العميل بنفس لغة البرمجة دون الحاجة إلى تعلم أداة جديدة تمامًا للانتقال إلى التطوير من جانب الخادم.

 

يستخدم المتصفح والخادم نفس مفاهيم اللغة. بالإضافة إلى ذلك ، يمكن لـ Node.js الانتقال بسرعة إلى معايير ECMAScript الجديدة حيث يتم تنفيذها على النظام الأساسي.

 

ليست هناك حاجة لانتظار المستخدمين لتحديث متصفحاتهم لهذا الغرض لأن Node.js هي بيئة من جانب الخادم تتحكم بشكل كامل في المطور. نتيجة لذلك ، تصبح ميزات اللغة الجديدة متاحة عند تثبيت إصدار داعم من Node.js.

 

محرك V8

 

في قلب Node.js ، من بين حلول أخرى ، يوجد محرك V8 JavaScript مفتوح المصدر من Google ، والذي يستخدم في Google Chrome والمتصفحات الأخرى. هذا يعني أن Node.js يستفيد من آلاف المهندسين الذين جعلوا وقت تشغيل JavaScript Chrome سريعًا بشكل لا يصدق ويستمرون في العمل على تحسين V8.

 

عدم التزامن

 

في لغات البرمجة التقليدية (C ، Java ، Python ، PHP) ، يتم حظر جميع التعليمات افتراضيًا ، ما لم يعتني المطور صراحة بتنفيذ التعليمات البرمجية بشكل غير متزامن. نتيجة لذلك ، إذا قمت ، على سبيل المثال ، في مثل هذه البيئة ، بتقديم طلب شبكة لتنزيل بعض رموز JSON ، فسيتم تعليق تنفيذ الدفق الذي تم تقديم الطلب منه حتى يتم تلقي الاستجابة ومعالجتها.

 

يسهّل JavaScript كتابة التعليمات البرمجية غير المتزامنة وغير المحظورة باستخدام مؤشر ترابط واحد وعمليات رد نداء ونهج قائم على الأحداث للتطوير. في كل مرة نحتاج فيها إلى إجراء عملية ثقيلة ، نقوم بتمرير رد اتصال إلى الآلية المناسبة ، والتي سيتم استدعاؤها فور الانتهاء من هذه العملية. نتيجة لذلك ، ليست هناك حاجة لانتظار نتائج هذه العمليات حتى يواصل البرنامج العمل.

 

نشأت آلية مماثلة في المتصفحات. لا يمكننا تحمل الانتظار ، على سبيل المثال ، لأجاكسطلب الإنهاء دون القدرة على الاستجابة لإجراءات المستخدم ، مثل نقرات الأزرار. لتسهيل عمل المستخدمين مع صفحات الويب ، يجب أن يحدث كل شيء ، سواء تنزيل البيانات من الشبكة أو نقرات زر المعالجة ، في نفس الوقت ، في الوقت الفعلي.

 

إذا قمت بإنشاء معالج حدث النقر فوق الزر ، فقد استخدمت بالفعل تقنيات البرمجة غير المتزامنة.

 

تسمح الآليات غير المتزامنة لخادم Node.js واحد بمعالجة آلاف الاتصالات في وقت واحد دون إثقال كاهل المبرمج بإدارة الخيط ومهام تنفيذ التعليمات البرمجية المتوازية. مثل هذه الأشياء غالبًا ما تكون مصادر للخطأ.

 

يوفر Node.js للمطور آليات الإدخال / الإخراج الأساسية غير المحظورة ، وبشكل عام ، تتم كتابة المكتبات المستخدمة في إطار عمل Node.js باستخدام نماذج غير محظورة.هذا يجعل سلوك الحظر هو الاستثناء وليس القاعدة.

 

عندما يحتاج Node.js إلى إجراء عملية إدخال / إخراج ، مثل تحميل البيانات من الشبكة أو الوصول إلى قاعدة بيانات أو نظام الملفات ، بدلاً من حظر مؤشر الترابط الرئيسي الذي ينتظر نتائج هذه العملية ، فإن Node.js سيبدأ التنفيذ والاستمرار في القيام بأشياء أخرى حتى يتم استلام نتائج هذه العملية.

 

مكتبات

 

مع سهولة وراحة العمل مع مدير الحزم لـ Node.js المسمى npm ، يزدهر نظام Node.js البيئي. يوجد الآن أكثر من نصف مليون حزمة مفتوحة المصدر في سجل npm يمكن لأي مطور Node.js استخدامها بحرية.

 

بعد مراجعة بعض الميزات الرئيسية لمنصة Node.js ، دعنا نجربها عمليًا. لنبدأ بالتثبيت.

 

 

Node.js

 

 

تثبيت Node.js

 

يمكن تثبيت Node.js بعدة طرق سنغطيها بعد قليل. لذلك ، يمكن العثور على حزم التثبيت الرسمية لجميع المنصات الرئيسية.

 

هناك طريقة أخرى مريحة للغاية لتثبيت Node.js ، وهي استخدام مدير الحزم المتوفر في نظام التشغيل. على سبيل المثال ، يُطلق على مدير حزم macOS ، وهو المعيار الفعلي في هذا المجال ، اسم Homebrew.

 

إذا كان لديك واحد على نظامك ، فيمكنك تثبيت Node.js عن طريق تشغيل هذا الأمر في سطر الأوامر:

 

تركيب الشراب العقدة

 

يمكن العثور هنا على قائمة بمديري الحزم لأنظمة التشغيل الأخرى ، بما في ذلك Linux و Windows.

 

مدير إصدارات Node.js الشهير هو nvm. تتيح لك هذه الأداة التبديل بسهولة بين الإصدارات المختلفة من Node.js ، بمساعدتها ، على سبيل المثال ، تثبيت إصدار جديد من Node.js وتجربته ، ثم الرجوع إلى الإصدار القديم ، إذا لزم الأمر. تعد Nvm مفيدة أيضًا في المواقف التي تحتاج فيها إلى اختبار بعض التعليمات البرمجية على إصدار قديم من Node.js.

 

للمبتدئين لاستخدام أدوات التثبيت الرسمية Node.js. بالنسبة لمستخدمي macOS ، يوصى المرء بتثبيت Node.js باستخدام Homebrew. الآن وبعد تثبيت Node.js ، حان الوقت لكتابة "Hello World".

 

أول تطبيق Node.js

 

المثال الأكثر شيوعًا لتطبيق Node.js الأول هو خادم ويب بسيط. ها هو كودها:

const http = تتطلب ('http')

اسم مضيف const = "127.0.0.1"

منفذ const = 3000

خادم const = http.createServer ((req، res) = & gt؛ {

res.statusCode = 200

res.setHeader ("نوع المحتوى" ، "نص / عادي")

res.end ("Hello World \ n")

})

server.listen (المنفذ ، اسم المضيف ، () = & GT ؛ {

console.log (`الخادم يعمل على http: // $ {hostname}: $ {port} /`)

})

 

لتشغيل هذا الرمز ، احفظه في ملف server.js وقم بتشغيل الأمر التالي في المحطة:

 

العقدة server.js

 

للتحقق من الخادم ، افتح متصفحًا وأدخل في شريط العنوان http://127.0.0.1:3000 ، أي عنوان الخادم الذي سيتم عرضه في وحدة التحكم بعد إطلاقه بنجاح. إذا كان كل شيء يعمل كما ينبغي ، فستعرض الصفحة "Hello World".

 

لنلق نظرة على هذا المثال.

 

أولاً ، لاحظ أن الكود يحتوي على أمر توصيل وحدة HTTP.

 

تحتوي منصة Node.js على مجموعة قياسية ممتازة من الوحدات ، والتي تتضمن آليات مطورة جيدًا للعمل مع الشبكة.

ينشئ أسلوب الكائن createServer () http خادم HTTP جديدًا ويعيده.

 

تم تكوين الخادم للاستماع على منفذ معين على مضيف معين. عندما يكون الخادم جاهزًا ، يتم استدعاء رد الاتصال المقابل ، لإعلامنا بأن الخادم قيد التشغيل.

عندما يتلقى الخادم طلبًا ، يتم تشغيل حدث طلب يوفر كائنين. الأول هو الطلب (req ، كائن http.IncomingMessage) ، والثاني هو الاستجابة (الدقة ، كائن http.ServerResponse). إنها أهم الآليات للتعامل مع طلبات HTTP.

 

الأول يوفر لنا معلومات حول الطلب. في مثالنا البسيط ، لا نستخدم هذه البيانات ، ولكن إذا لزم الأمر ، باستخدام الكائن ، يمكنك الوصول إلى رؤوس الطلبات والبيانات التي تم تمريرها فيها.

 

والثاني ضروري لتكوين وإرسال رد على الطلب

 

في هذه الحالة نشكل الرد على الطلب على النحو التالي. أولاً ، قمنا بتعيين رمز حالة الملكية على القيمة 200 ، مما يشير إلى نجاح العملية:

 

res.statusCode = 200

بعد ذلك ، حددنا العنوان نوع المحتوى:

res.setHeader ("نوع المحتوى" ، "نص / عادي")

نكمل بعد ذلك تحضير الإجابة بإضافة محتواها كوسيطة إلى طريقة النهاية ():

res.end ("Hello World \ n")

 

لقد ذكرنا بالفعل أن نظامًا بيئيًا قويًا قد تشكل حول منصة Node.js. دعنا الآن نناقش بعض الأطر الشائعة والأدوات المساعدة لـ Node.js.

 

الأطر والأدوات المساعدة لـ Node.js

 

Node.js عبارة عن نظام أساسي منخفض المستوى. من أجل تبسيط التطوير لها وتسهيل الحياة على المبرمجين ، تم إنشاء عدد كبير من المكتبات. أصبح بعضها مشهورًا جدًا بمرور الوقت. فيما يلي قائمة صغيرة من المكتبات التي أعتقد أنها جيدة الصنع وتستحق الاستكشاف:

 

التعبير: توفر هذه المكتبة للمطور أداة بسيطة للغاية لكنها قوية لبناء خوادم الويب. كان مفتاح نجاح Express هو النهج البسيط والتركيز على الآليات الأساسية من جانب الخادم دون محاولة فرض رؤية لبنية الخادم "الشاملة".

 

نيزك: إنه إطار عمل قوي كامل المكدس يتخذ نهجًا متماثلًا لتطوير تطبيقات JavaScript واستخدام الكود على كل من العميل والخادم. بمجرد أن أصبح Meteor أداة قائمة بذاتها تتضمن كل ما قد يحتاجه المطور. يتكامل الآن أيضًا مع مكتبات الواجهة الأمامية مثل React و Vue و Angular. يمكن استخدام Meteor ، بالإضافة إلى تطوير تطبيقات الويب المشتركة ، في تطوير الأجهزة المحمولة.

 

كوا: تم إنشاء إطار عمل الويب هذا بواسطة نفس الفريق وراء Express بناءً على سنوات من الخبرة مع Express ، تم تطويره مع التركيز على البساطة والاكتناز. جاء هذا المشروع كحل لمشكلة إجراء تغييرات كبيرة على Express التي لا تتوافق مع آليات إطار العمل الأخرى التي يمكن أن تقسم المجتمع.

 

Next.js: تم تصميم إطار العمل هذا لتنظيم عرض جانب الخادم لتطبيقات React.

 

مجهري: إنها مكتبة خفيفة الوزن جدًا لبناء خدمات HTTP غير متزامنة.

مقبس. إنها مكتبة لتطوير تطبيقات الشبكة في الوقت الفعلي.

 

في الواقع ، في النظام البيئي Node.js ، يمكنك العثور على مكتبة مساعدة لأي مهمة تقريبًا. كما يمكنك أن تتخيل ، فإن بناء مثل هذا النظام البيئي يستغرق الكثير من الوقت. ظهرت منصة Node.js في عام 2009. خلال فترة وجودها ، حدثت الكثير من الأشياء التي يجب أن يعرفها المبرمج الذي يريد تعلم هذه المنصة.

 

تاريخ موجز لـ Node.js

 

يبلغ عمر Node.js 9 سنوات هذا العام. هذا ، بالطبع ، ليس كثيرًا عندما تقارن هذا العمر بعمر JavaScript ، الذي يبلغ بالفعل 23 عامًا ، أو بعمر الويب البالغ 25 عامًا كما نعرفه إذا كنت تحسب من ظهور Mosaic المتصفح.

 

9 سنوات هي فترة قصيرة للتكنولوجيا ، ولكن الآن يبدو أن منصة Node.js كانت موجودة دائمًا.

 

مع Node.js من الإصدارات القديمة للنظام الأساسي عندما كان عمره عامين فقط. حتى ذلك الحين ، على الرغم من عدم وجود الكثير من المعلومات حول Node.js ، يمكن للمرء أن يشعر بالفعل أن Node.js جاد للغاية.

 

الآن دعنا نتحدث عن التقنيات الكامنة وراء Node.js ونلقي نظرة سريعة علىالتطورات الرئيسية المتعلقة بهذه المنصة.

 

لذا فإن JavaScript هي لغة برمجة تم إنشاؤها في Netscape كلغة برمجة نصية لمعالجة صفحات الويب في متصفح Netscape Navigator.

كان جزء من أعمال Netscape هو بيع خوادم الويب ، والتي تضمنت بيئة تسمى Netscape LiveWire. سمح لك بإنشاء صفحات ويب ديناميكية باستخدام JavaScript من جانب الخادم.

 

فكرة استخدام JS للتطوير من جانب الخادم أقدم بكثير من Node.js. هذه الفكرة قديمة قدم جافا سكريبت نفسها تقريبًا ، ولكن في ذلك الوقت ، لم تكن JS من جانب الخادم شائعة.

 

أحد العوامل الرئيسية التي جعلت منصة Node.js منتشرة وشعبية للغاية عندما ظهرت لأول مرة. لذلك ، قبل بضع سنوات ، بدأت JavaScript في اعتبارها لغة جادة. حدث هذا بفضل تطبيقات الويب 2.0 مثل خرائط Google أو Gmail ، والتي أظهرت للعالم قوة تقنيات الويب الحديثة.

 

بفضل الحرب التنافسية للمتصفحات ، والتي استمرت حتى يومنا هذا ، زاد أداء محركات JavaScript بشكل ملحوظ. تعمل فرق التطوير وراء المتصفحات الرئيسية كل يوم لتحسين أداء حلولها ، مما يكون له تأثير مفيد على JavaScript بشكل عام.

 

أحد هذه المحركات هو V8 المذكور بالفعل ، والمستخدم في متصفح Chrome والمستخدم في Node.js. إنها إحدى نتائج مطوري المستعرضات الذين يسعون جاهدين للحصول على كود JavaScript عالي الأداء.

 

بالطبع ، لا تعتمد شعبية Node.js على صدفة الحظ فحسب ، بل على حقيقة أن المنصة وُلدت في الوقت المناسب. لقد قدمت للعالم نهجًا مبتكرًا لتطوير JavaScript من جانب الخادم. دعونا نلقي نظرة على المعالم الرئيسية في تاريخ Node.js.

 

2009


  • ظهور Node.js

  • عمل المتغير الأول npm.

 

2010

  • ظهور Express.

  • ظهور Socket.io.

 

2011


  • إصدار Npm 1.0.

  • بدأت الشركات الكبيرة مثل LinkedIn و Uber في استخدام Node.js.

 

2012


  • الارتفاع السريع في شعبية Node.js.

 

2013


  • ظهور Ghost ، أول منصة رئيسية للمنشورات باستخدام Node.js.

  • إطلاق Koa.

 

2014


  • وقعت أحداث درامية هذا العام. ظهر مشروع IO.js ، وهو عبارة عن مفترق لـ Node.js ، والغرض منه ، من بين أمور أخرى ، هو تقديم دعم ES6 وتسريع تطوير النظام الأساسي.

 

2015


  • تم تأسيس مؤسسة Node.js.

  • دمج IO.js و Node.js.

  • في npm ، يصبح من الممكن العمل مع الوحدات الخاصة.

  • Yield Node.js 4 (تجدر الإشارة إلى أن الإصدارات 1 و 2 و 3 من النظام الأساسي لم تكن كذلك).

 

2016


  • حادثة حزمة الوسادة اليسرى.

  • ظهور الغزل.

  • إصدار Node.js 6.

 

2017


  • بدأت Npm في إيلاء المزيد من الاهتمام للأمان.

  • إصدار Node.js 8

  • ظهور دعم HTTP / 2.

  • تم التعرف على V8 رسميًا كمحرك JS مصمم ليس فقط من أجل Chrome ولكن أيضًا من أجل Node.

  • يتم تنزيل 3 مليارات نانومتر في الدقيقة كل أسبوع.

 

2018


  • إصدار Node.js 10.

  • دعم وحدات ES.

  • دعم mjs التجريبية.