আমার সম্পর্কে জিজ্ঞাসা করার আগে আমার app.routerমনে হয় মিডলওয়্যারের সাথে কাজ করার সময় আমার মনে হয় কি হবে কমপক্ষে আমার ব্যাখ্যা করা উচিত। মিডলওয়্যার ব্যবহার করার জন্য, ব্যবহারের ফাংশনটি হ'ল app.use()। মিডলওয়্যারটি কার্যকর করা হচ্ছে, এটি হয় পরবর্তী মিডওয়্যারটি ব্যবহার করে কল করবে next()বা এটিকে আর মিডলওয়্যার হিসাবে কল করা হবে না । এর অর্থ হল যে আমি আমার মিডলওয়্যার কলগুলি যে ক্রমে রেখেছি তা গুরুত্বপূর্ণ, কারণ কিছু মিডলওয়্যার অন্যান্য মিডলওয়্যারের উপর নির্ভর করে, এবং কিছু মিডলওয়্যার শেষের কাছাকাছি যেতে পারে না।
আজ আমি আমার অ্যাপ্লিকেশনটিতে কাজ করছিলাম এবং আমার সার্ভারটি ব্যাকগ্রাউন্ডে চলছিল। আমি কিছু পরিবর্তন করতে এবং আমার পৃষ্ঠাটি রিফ্রেশ করতে এবং অবিলম্বে পরিবর্তনগুলি দেখতে চেয়েছিলাম। বিশেষত, আমি আমার বিন্যাসে পরিবর্তন আনছিলাম। আমি এটি কাজ করতে পারি না তাই উত্তরের জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করে এই প্রশ্নটি পেয়েছি । এটি express.static()নীচে রয়েছে তা নিশ্চিত করতে বলে require('stylus')। তবে আমি যখন ওপি-র কোডটি দেখছিলাম, তখন আমি দেখতে পেলাম যে app.routerতাঁর মিডলওয়্যারের কলগুলির একেবারে শেষে তাঁর কল ছিল এবং আমি কেন তা জানার চেষ্টা করেছি।
আমি যখন আমার এক্সপ্রেস.জেএস অ্যাপ্লিকেশন (সংস্করণ .0.০.০ আরসি ৪) তৈরি করি, তখন আমি কমান্ডটি ব্যবহার করি express app --sessions --css stylusএবং আমার অ্যাপ্লিকেশন। Js ফাইলে কোডটি আমার app.routerউপরের উভয় express.static()এবং require('stylus')কলগুলির সাথে সেটআপ হয় । সুতরাং এটির মতো মনে হচ্ছে, যদি এটি ইতিমধ্যে সেটআপ হয়ে আসে তবে তা সেভাবেই থাকা উচিত।
আমার কোডটি পুনরায় সাজানোর পরে যাতে আমি আমার স্টাইলাসের পরিবর্তনগুলি দেখতে পেলাম, এটিকে দেখে মনে হচ্ছে:
app.configure(function(){
//app.set() calls
//app.use() calls
//...
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(__dirname + '/public', {maxAge: 31557600000}));
});
app.get('/', routes.index);
app.get('/test', function(req, res){
res.send('Test');
});
সুতরাং আমি স্থির করেছিলাম যে আমার কোডটিতে থাকা কেন এটি জরুরী তা খুঁজে বের করা প্রথম পদক্ষেপ app.router। সুতরাং আমি এটি মন্তব্য করেছিলাম, আমার অ্যাপ্লিকেশন শুরু করেছি এবং এতে নেভিগেট করেছি /। এটি আমার সূচক পৃষ্ঠাটি ঠিক সূক্ষ্মভাবে প্রদর্শন করেছে। হুম, সম্ভবত এটি কাজ করেছিল কারণ আমি আমার রুট ফাইল (রুটস.ইন্ডেক্স) থেকে রাউটিং রফতানি করছিলাম। এরপরে আমি নেভিগেট করেছি /testএবং এটি স্ক্রিনে টেস্ট প্রদর্শন করেছে। হাহাহা, ঠিক আছে, আমি কী জানি app.routerনা। এটি আমার কোডের অন্তর্ভুক্ত রয়েছে বা না, আমার রাউটিংটি ভাল। সুতরাং আমি অবশ্যই কিছু মিস করছি।
তো এই হলো আমার প্রশ্ন:
কেউ দয়া করে কী কী app.routerতা ব্যাখ্যা করতে পারে, এর গুরুত্ব এবং আমার মিডওয়্যার কলগুলিতে আমার এটি কোথায় রাখা উচিত? আমি সম্পর্কে একটি সংক্ষিপ্ত বিবরণ পেলে এটিও ভাল হবে express.static()। আমি যতদূর বলতে পারি, express.static()আমার তথ্যের একটি ক্যাশে, এবং যদি অ্যাপ্লিকেশনটি অনুরোধ করা পৃষ্ঠাটি না খুঁজে পায়, এটি ক্যাশে রয়েছে কিনা তা পরীক্ষা করে দেখবে।