اذهب إلى المحتوى
  • 0

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

Tamim Fahed

السؤال

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

./bin/www

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

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

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

node app.js

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

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

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

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

Recommended Posts

  • 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

في 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 مثالا لتشغيل التطبيق كخادم ويب.

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

  • 0

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

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

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

 

تم التعديل في بواسطة MoJaffer
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...