বোঝার আগে next
আপনার কাছে নোডে অনুরোধ-প্রতিক্রিয়া চক্র সম্পর্কে কিছুটা ধারণা থাকা দরকার যদিও বিস্তারিত কিছু নয়। এটি আপনাকে কোনও নির্দিষ্ট সংস্থার জন্য এইচটিটিপি অনুরোধ করার মাধ্যমে শুরু হয় এবং আপনি যখন ব্যবহারকারীর কাছে কোনও প্রতিক্রিয়া ফেরৎ পাঠান তখনই যখন আপনি রেজ.সেন্ড ('হ্যালো ওয়ার্ল্ড') এর মতো কোনও সমস্যার মুখোমুখি হন;
আসুন একটি খুব সহজ উদাহরণ দেখুন।
app.get('/hello', function (req, res, next) {
res.send('USER')
})
এখানে আমাদের পরবর্তী () দরকার নেই, কারণ রেস.সেন্ড চক্রটি শেষ করবে এবং নিয়ন্ত্রণটি পুনরায় মিডলওয়্যারের কাছে হস্তান্তর করবে।
এবার আসুন আরেকটি উদাহরণ দেখুন।
app.get('/hello', function (req, res, next) {
res.send("Hello World !!!!");
});
app.get('/hello', function (req, res, next) {
res.send("Hello Planet !!!!");
});
এখানে একই পথের জন্য আমাদের কাছে মিডলওয়্যার দুটি ফাংশন রয়েছে। তবে আপনি সর্বদা প্রথমটির কাছ থেকে প্রতিক্রিয়া পাবেন। কারণ মিডলওয়্যার স্ট্যাকের মধ্যে এটি প্রথমে মাউন্ট করা হয়েছে এবং রেস.সেন্ডটি চক্রটি শেষ করবে।
তবে যদি আমরা সবসময় "হ্যালো ওয়ার্ল্ড !!!!" না চাই প্রতিক্রিয়া ফিরে। কিছু শর্তের জন্য আমরা "হ্যালো প্ল্যানেট !!!!" চাই প্রতিক্রিয়া। আসুন উপরের কোডটি পরিবর্তন করুন এবং দেখুন কী ঘটে।
app.get('/hello', function (req, res, next) {
if(some condition){
next();
return;
}
res.send("Hello World !!!!");
});
app.get('/hello', function (req, res, next) {
res.send("Hello Planet !!!!");
});
next
এখানে কি করছে? এবং হ্যাঁ আপনি অনুমান করতে পারেন। কন্ডিশনটি সত্য হলে এটি প্রথম মিডলওয়্যার ফাংশনটি এড়িয়ে যাবে এবং পরবর্তী মিডলওয়্যার ফাংশনটি আহ্বান করবে এবং আপনার "Hello Planet !!!!"
প্রতিক্রিয়া হবে।
সুতরাং, মিডলওয়্যার স্ট্যাকের পরবর্তী ফাংশনে নিয়ন্ত্রণটি পাস করুন।
প্রথম মিডওয়্যার ফাংশনটি যদি কোনও প্রতিক্রিয়া ফিরে না পাঠায় তবে একটি যুক্তি প্রয়োগ করে এবং তারপরে আপনি দ্বিতীয় মিডলওয়্যার ফাংশন থেকে প্রতিক্রিয়া ফিরে পান What
নীচের মত কিছু: -
app.get('/hello', function (req, res, next) {
// Your piece of logic
next();
});
app.get('/hello', function (req, res, next) {
res.send("Hello !!!!");
});
এই ক্ষেত্রে আপনার উভয় মিডলওয়্যার ফাংশন চাওয়া প্রয়োজন। সুতরাং, দ্বিতীয় মিডলওয়্যার ফাংশনে পৌঁছানোর একমাত্র উপায় হ'ল পরবর্তী () কল করে;
আপনি যদি পরবর্তী কোনও কল না করেন তবে কী হবে। দ্বিতীয় মিডলওয়্যার ফাংশনটি স্বয়ংক্রিয়ভাবে চালিত হওয়ার আশা করবেন না। প্রথম ফাংশনটি শুরু করার পরে আপনার অনুরোধটি ঝুলন্ত অবস্থায় থাকবে। দ্বিতীয় ফাংশনটি কখনই ডাকা হবে না এবং আপনি প্রতিক্রিয়া ফিরে পাবেন না।
res.send
অনুরোধটি সম্পূর্ণ করতে ব্যবহার করবে । যদি এটি বিদ্যমান না থাকে তবে সম্ভবত অন্য একটি হ্যান্ডলার রয়েছে যা ত্রুটি জারি করবে এবং অনুরোধটি সম্পূর্ণ করবে।