Rayden Storm نشر 29 أبريل 2021 أرسل تقرير نشر 29 أبريل 2021 ما هو الفرق بين استخدام app مباشرة لتحديد endpoint او استخدام route const express = require('express'); const app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(4000, () => { console.log('server running'); }); const express = require('express'); const app = express(); const router = app.router; router.get('/', function (req, res) { res.send('hello world'); }); app.listen(4000, () => { console.log('server running'); }); اقتباس
1 محمد أيت لعرايك نشر 29 أبريل 2021 أرسل تقرير نشر 29 أبريل 2021 لكي نفهم جيد الفرق بين استخدام app أو route لنعاين المثالين التاليين // app.js var express = require('express'), dogs = require('./routes/dogs'), var app = express(); app.use('/dogs', dogs); app.use('/cats', cats); app.use('/birds', birds); app.listen(3000); //dogs.js var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { res.send('GET handler for /dogs route.'); }); router.post('/', function(req, res) { res.send('POST handler for /dogs route.'); }); module.exports = router; عندما يتم استدعاء ()var app = express ، يتم إرجاع كائن app. . التطبيق الرئيسي عندما يتم استدعاء var router = express.Router، يتم إرجاع تطبيق صغير مختلف قليلاً. الفكرة وراء التطبيق المصغر هي أن كل مسار في تطبيقك يمكن أن يصبح معقدًا للغاية ، وستستفيد من نقل كل هذه التعليمات البرمجية إلى ملف منفصل. يصبح جهاز توجيه كل ملف تطبيقًا مصغرًا. له هيكل مشابه جدًا للتطبيق الرئيسي. في المثال أعلاه ، تم نقل رمز المسار / dogs إلى ملفه الخاص حتى لا يتسبب في تشويش التطبيق الرئيسي. سيتم تنظيم الكود الخاص بـ / dogs بالمثل في ملفاتهم الخاصة. من خلال فصل هذا الرمز إلى ثلاثة تطبيقات صغيرة ، يمكنك العمل على منطق كل واحد على حدة ، ولا تقلق بشأن كيفية تأثيره على التطبيقين الآخرين. cats و birds إذا كان لديك كود middleware يتعلق بجميع المسارات الثلاثة ، فيمكنك وضعه في التطبيق الرئيسي ، قبل app.use إذا كان لديك كود middleware يتعلق بواحد فقط من هذه المسارات ، يمكنك وضعه في الملف لهذا المسار فقط. 1 اقتباس
1 Sam Ahw نشر 29 أبريل 2021 أرسل تقرير نشر 29 أبريل 2021 من إحدى وأهم الفروقات هو إمكانية إضافة middlewares على مستويات مختلفة. فباستخدام app: app.get('/', [.....],) يمكننا تطبيق وسيط middleware على مستوى التطبيق App Level. أما باستخدام router: router.get('/',[...]) يمكننا تطبيق وسيط middleware فقط على مستوى التوجيهات routes. ويوجد أهمية كبيرة لمستوى تطبيق بعض الوسائط خاصة فيما يتعلق بالحماية الأمنية للتطبيق أو فرض تحقق معيّن أو صلاحيات محددة. ويوجد العديد من الوسائط التي ينصح باستخدامها على مستوى محدد بدلاً من غيره. 1 اقتباس
0 بلال زيادة نشر 29 أبريل 2021 أرسل تقرير نشر 29 أبريل 2021 app.get() يشبه إلى حد كبير router.get() App Object عبارة عن جهاز توجيه ( router )يحتوي أيضًا على بعض الخصائص والدول الأخرى عليه. لذلك , فإن معظم أي دالة من كائن التوجيه ( route object ) تكون أيضًا على كائن app ، ولكن ليس العكس. غالبًا ما يكون من المفيد تجميع مسارات التوجيه لجزء معين من الموقع معًا والوصول إليها باستخدام route-prefix (على سبيل المثال , قد يحتوي الموقع الذي يحتوي على Wiki على جميع المسارات ذات الصلة بـ wiki في ملف واحد ويتم الوصول إليها ببادئة المسار من / ويكي /). في Express يتم تحقيق ذلك باستخدام كائن express.Router. على سبيل المثال , يمكننا إنشاء مسار wiki الخاص بنا في وحدة نمطية تسمى wiki.js , ثم تصدير كائن جهاز التوجيه , const express = require('express'); const router = express.Router(); router.get('/', function(req, res) { res.send('صفحة رئيسية'); }); router.get('/about', function(req, res) { res.send('حول wiki'); }); module.exports = router; يمكنك القراءة أكثر عن هذا الموضوع من خلال توثيق routing على expressjs من هنا. اقتباس
0 Sutton Velma نشر 12 يوليو 2021 أرسل تقرير نشر 12 يوليو 2021 (معدل) Thanks for sharing تم التعديل في 12 يوليو 2021 بواسطة Sutton Velma اقتباس
السؤال
Rayden Storm
ما هو الفرق بين استخدام app مباشرة لتحديد endpoint او استخدام route
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.