الاختلافات بين Node.js والمتصفح
يستخدم كل من المتصفح و Node.js جافاسكربت كلغة برمجة. يختلف بناء التطبيقات التي تعمل في المتصفح تمامًا عن بناء تطبيق Node.js. على الرغم من حقيقة أنها دائمًا جافاسكربت، إلا أن هناك بعض الاختلافات الرئيسية التي تجعل التجربة مختلفة جذريًا.
من منظور مطور الواجهة الأمامية الذي يستخدم جافاسكربت على نطاق واسع، تجلب تطبيقات Node.js معها ميزة كبيرة: الراحة في برمجة كل شيء - الواجهة الأمامية والخلفية - بلغة واحدة.
لديك فرصة كبيرة لأننا نعلم مدى صعوبة تعلم لغة برمجة بشكل كامل وعميق، وباستخدام نفس اللغة لأداء كل عملك على الويب - على كل من العميل والخادم، فأنت في وضع فريد من المزايا.
TIP
ما يتغير هو النظام البيئي.
في المتصفح، معظم الوقت ما تفعله هو التفاعل مع DOM، أو واجهات برمجة تطبيقات الويب الأخرى مثل ملفات تعريف الارتباط. هذه غير موجودة في Node.js، بالطبع. ليس لديك document
و window
وجميع الكائنات الأخرى التي يوفرها المتصفح.
وفي المتصفح، ليس لدينا جميع واجهات برمجة التطبيقات اللطيفة التي توفرها Node.js من خلال وحداتها النمطية، مثل وظيفة الوصول إلى نظام الملفات.
فرق كبير آخر هو أنك في Node.js تتحكم في البيئة. ما لم تكن تقوم ببناء تطبيق مفتوح المصدر يمكن لأي شخص نشره في أي مكان، فأنت تعرف إصدار Node.js الذي ستشغل التطبيق عليه. بالمقارنة مع بيئة المتصفح، حيث لا تحصل على رفاهية اختيار المتصفح الذي سيستخدمه زوارك، فهذا مناسب جدًا.
هذا يعني أنه يمكنك كتابة كل جافاسكربت ES2015+ الحديثة التي يدعمها إصدار Node.js الخاص بك. نظرًا لأن جافاسكربت تتحرك بسرعة كبيرة، ولكن المتصفحات قد تكون بطيئة بعض الشيء في الترقية، فأحيانًا على الويب تكون عالقًا في استخدام إصدارات أقدم من جافاسكربت / ECMAScript. يمكنك استخدام Babel لتحويل التعليمات البرمجية الخاصة بك لتكون متوافقة مع ES5 قبل شحنها إلى المتصفح، ولكن في Node.js، لن تحتاج إلى ذلك.
فرق آخر هو أن Node.js يدعم كلاً من أنظمة الوحدات النمطية CommonJS و ES (منذ Node.js v12)، بينما في المتصفح، بدأنا نرى تنفيذ معيار ES Modules.
من الناحية العملية، هذا يعني أنه يمكنك استخدام كل من require()
و import
في Node.js، بينما تقتصر على import
في المتصفح.