নোড.জেএস + এক্সপ্রেস: রুট বনাম নিয়ামক


102

নোড.জেএস এবং এক্সপ্রেসে নতুন, আমি দুটি বোঝার চেষ্টা করছি যে ওভারল্যাপিং ধারণা, রুট বনাম নিয়ামক।

আমি উদাহরণগুলি দেখেছি যে অ্যাপ্লিকেশনগুলি খুব সহজেই অ্যাপ.জেএস + রুট / * করে, এটি বিভিন্ন অনুরোধের প্রয়োজনীয় পথগুলিতে যথেষ্ট বলে মনে হয়।

তবে, আমি কন্ট্রোলার ব্যবহার করার বিষয়ে লোকদের কথা বলতে দেখছি এবং এমন কিছু যা আরও আনুষ্ঠানিক এমভিসি মডেলকে বোঝায় (???)।

কেউ যদি আমাকে এই রহস্যটি পরিষ্কার করতে সহায়তা করতে পারে, এবং আপনার কাছে নোড.জেএস + এক্সপ্রেস ফ্রেমওয়ার্কে কন্ট্রোলার স্থাপনের জন্য একটি ভাল উদাহরণ রয়েছে যা দুর্দান্ত হবে!

ধন্যবাদ,

উত্তর:


131

এক্সপ্রেস সম্পর্কে দুর্দান্ত জিনিসগুলির মধ্যে একটি (এবং সাধারণভাবে নোড) এটি আপনার পক্ষে প্রচুর মতামতকে চাপ দেয় না; ডাউনসাইডগুলির মধ্যে একটি হ'ল এটি আপনার উপর কোনও মতামত চাপায় না। সুতরাং, আপনি নিজেরাই এ জাতীয় কোনও মতামত (নিদর্শন) সেট আপ করতে মুক্ত (এবং প্রয়োজনীয়!) Are

এক্সপ্রেসের ক্ষেত্রে, আপনি অবশ্যই একটি এমভিসি প্যাটার্ন ব্যবহার করতে পারেন, এবং কোনও রুট হ্যান্ডলার অবশ্যই আপনার ইচ্ছা করলে নিয়ামকের ভূমিকা পালন করতে পারে - তবে আপনাকে সেভাবে সেট আপ করতে হবে। বলা হয় এক্সপ্রেস উদাহরণ ফোল্ডারে একটি দুর্দান্ত উদাহরণ পাওয়া যায় mvc। আপনি যদি তাকান lib/boot.js, আপনি দেখতে পাবেন যে তারা কীভাবে controllersডিরেক্টরিতে প্রতিটি ফাইলের প্রয়োজনের উদাহরণ স্থাপন করেছে এবং নিয়ামকগুলিতে তৈরি পদ্ধতির নামের উপর নির্ভর করে ফ্লাইতে এক্সপ্রেস রুট তৈরি করে।


4
এই দুর্দান্ত স্মার্ট উত্তরের প্রথম অনুচ্ছেদটি দুটি পদগুলির মধ্যে একটি ভাল ব্যাখ্যা / পার্থক্য দিচ্ছে।
ফ্রাঙ্ক নোক

1

আপনার কাছে কেবল একটি রুট ফোল্ডার বা উভয় থাকতে পারে। উদাহরণস্বরূপ, কিছু সেট রুট / পাথ (প্রাক্তন / ব্যবহারকারী /: আইডি) এবং সেগুলি গেট, পোস্ট, পুট / আপডেট, মুছুন ইত্যাদি সাথে সংযুক্ত করে এবং তারপরে রুট ফোল্ডারে:

const subController = require('./../controllers/subController');

Router.use('/subs/:id');

Router
 .route('subs/:id')
 .get(subController.getSub)
 .patch(subController.updateSub);

তারপরে, কন্ট্রোলার ফোল্ডারে:

exports.getSub = (req, res, next) => {
  req.params.id = req.users.id;
};

কিছু করার জন্য। আমি কোনও নিয়ন্ত্রণকারী ফোল্ডারবিহীন প্রকল্পগুলি করেছি এবং সমস্ত যুক্তি এক জায়গায় রেখেছি placed

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.