freeCodeCamp/guide/arabic/nodejs/index.md

3.3 KiB

title localeTitle
Node.js نود.جي إس

نود.جي إس

Node.js هو وقت تشغيل جافا سكريبت مبني على محرك جافا سكريبت V8 من Chrome. تستخدم Node.js نموذج I / O غير معتمد على الحدث ، مما يجعله خفيف الوزن وفعالاً. النظام البيئي لحزمة Node.js ، npm ، هو أكبر نظام من مكتبات المصادر المفتوحة في العالم.

دعونا كسرها.

  • وقت تشغيل جافا سكريبت مبني على محرك جافا سكريبت V8 من Chrome.
    يحتوي كل متصفح على مشغل JavaSript مضمن لمعالجة ملفات JavaScript المضمنة في مواقع الويب. يستخدم Google Chrome محرك V8 الذي تم إنشاؤه باستخدام C ++. تستخدم Node.js أيضًا هذا المحرك الفائق السرعة لترجمة ملفات JavaScript.
  • يستخدم Node.js نموذجًا يعتمد على الحدث.
    هذا يعني أن Node.js ينتظر حدوث بعض الأحداث. ثم تعمل على تلك الأحداث. يمكن أن تكون الأحداث أي شيء من نقرة إلى طلب HTTP. يمكننا أيضًا الإعلان عن الأحداث المخصصة الخاصة بنا وجعل node.js يستمع إلى تلك الأحداث.
  • يستخدم Node.js نموذج I / O غير مقيد.
    نحن نعلم أن مهام الإدخال / الإخراج تستغرق وقتًا أطول من مهام المعالجة. يستخدم Node.js وظائف رد الاتصال لمعالجة مثل هذه الطلبات.

لنفترض أن مهمة I / O معينة تستغرق 5 ثوانٍ لتنفيذها. ونريد إجراء هذا الإدخال / الإخراج مرتين في الشفرة.

الثعبان

`import time

def my_io_task(): time.sleep(5) print("done")

my_io_task() my_io_task() `

نود.جي إس

`function my_io_task() { setTimeout(function() { console.log('done'); }, 5000); }

my_io_task(); my_io_task(); `

كلاهما يشبهان لكن الوقت المستغرق في التنفيذ مختلفان. يستغرق رمز python 10 ثوانٍ لتنفيذ بينما يستغرق رمز Node.js 5 ثوانٍ فقط للتنفيذ.

تستغرق Node.js وقتًا أقل نظرًا لنموذج الإدخال / الإخراج غير الذي يحظره. تبدأ المكالمة الأولى إلى my_io_task() المؤقت وتتركه هناك. لا تنتظر الاستجابة من الدالة ، بدلاً من ذلك ، تنتقل إلى استدعاء my_io_task() الثاني my_io_task() ، يبدأ الموقت ويتركها هناك.

عندما يكمل الموقت تنفيذ ذلك يأخذ 5 ثوان ، فإنه يستدعي وظيفة وطباعة done على وحدة التحكم. منذ ذلك الحين ، يتم تشغيل كل من المؤقتين معًا ، ويتم إكمالهما معًا ، وبالتالي يستغرقان نفس الوقت.

معلومات اكثر: