• 0

ما وظيفة الملف ./bin/www في express 4 ضمن node.js

لقد قمت بإنشاء مشروع جديد من خلال express generator ولاحظت وجود مسار جديد فيه الملف:

./bin/www

 وفيه المعلومات الأساسية لتشغيل الخادم والمنفذ أما بقية الكود الخاص بالمسارات فهو موجود ضمن الملف الرئيسي app.js 

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

وأيضاً اعتدت على تشغيل مشروعي من خلال الأمر التالي:

node app.js

والآن عندما اطلعت على package.json وجدت التالي:

"scripts": {
    "start": "node ./bin/www"
}

فهل يجب علي تشغيل المشروع من خلال الأمر node ./bin/www ؟ أم npm start ؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

الطريقة الصحيحة لتشغيل المشروع في express 4 في حالتك هي بتنفيذ الأمر التالي بدلاً من node app.js:

npm start

وفي حال كنت ترغب بالاستغناء عن عملية الفصل هذه التي حدثت في النسخة الرابعة والعودة للطريقة المتّبعة في النسخة الثالثة، يمكنك حذف السطر التالي من نهاية الملف الرئيسي لمشروعك app.js:

module.exports = app;

وإضافة الكود التالي:

app.set('port', process.env.PORT || 3000)

app.listen(app.get('port'), () => {
  console.log(`Server running on: ${app.get('port')}`);
})

ثم، يمكنك تعديل ملف التشغيل الموجود ضمن package.json ليصبح كالتالي:

"scripts": {
    "start": "node app.js"
}

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

في Express 3.0 ، عادة ما تستخدم app.configure () أو app.use () لإعداد البرامج الوسيطة (middleware) المطلوبة التي تحتاجها. يتم تجميع تلك البرامج الوسيطة التي حددتها, على سبيل المثال

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.compress());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());

في n Express 4.0 تمت إزالة جميع البرامج الوسيطة بحيث يمكن صيانتها وتحديثها بشكل مستقل عن Core Express (باستثناء البرامج الوسيطة الثابتة) ، وبالتالي يجب استدعاؤها بشكل منفصل, يعمل الملف bin / كمكان حيث يمكنك تحديد البرامج النصية لبدء التشغيل (startup scripts) المختلفة. يعد www مثالا لتشغيل التطبيق كخادم ويب.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

في النسخة الـ 4 من Express لم تعد بحاجة لإستخدام كل من app.configure &  app.use  لإعداد الـ middleware المطلوبة فقد تم حذف جيمع تلك الـ middleware الآن حيث اصبح بالإمكان تحديثها وصيانتها بشكل مستقل من Express Core

وهنا في الملف www سيكون المكان الذي ستقوم فيه بإنشاء السيرفر وتمرير التطبيق من خلاله (ملف app.js)

حيث سيكون ملف app.js الملف الذي يحتوي على الـ middlewares & routes 

 

تمّ تعديل بواسطة MoJaffer

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن