Skip to content

الاختلافات بين Node.js والمتصفح

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

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

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

TIP

ما يتغير هو النظام البيئي.

في المتصفح، معظم ما تفعله هو التفاعل مع DOM، أو واجهات برمجة تطبيقات منصة الويب الأخرى مثل ملفات تعريف الارتباط. هذه لا توجد في Node.js، بالطبع. ليس لديك document، window وجميع الكائنات الأخرى التي يوفرها المتصفح.

وفي المتصفح، ليس لدينا جميع واجهات برمجة التطبيقات الرائعة التي يوفرها Node.js من خلال وحداته، مثل وظائف الوصول إلى نظام الملفات.

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

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

اختلاف آخر هو أن Node.js يدعم كل من نظامي CommonJS و ES module (منذ Node.js v12)، بينما في المتصفح، نبدأ في رؤية معيار ES Modules قيد التنفيذ.

في الممارسة العملية، هذا يعني أنه يمكنك استخدام كل من require() و import في Node.js، بينما أنت محدود بـ import في المتصفح.