উত্তর:
req.params
রুটের প্যারামিটারগুলি (URL এর পাথ অংশে) req.query
রয়েছে এবং এতে URL টি কোয়েরি পরামিতি রয়েছে (URL এর পরে ?
)।
আপনি req.param(name)
উভয় স্থানে (পাশাপাশি req.body
) একটি প্যারামিটার সন্ধান করতেও ব্যবহার করতে পারেন , তবে এই পদ্ধতিটি এখন অবচয় করা হয়েছে।
req.param
এখন অবচয় করা হয়েছে। নোড ব্যবহার করার পরামর্শ দেয় req.query
বাreq.params
এই রুট দেওয়া হয়েছে
app.get('/hi/:param1', function(req,res){} );
এবং এই ইউআরএল দেওয়া হয়েছে
http://www.google.com/hi/there?qs1=you&qs2=tube
তোমার থাকবে:
req। প্রশ্ন
{
qs1: 'you',
qs2: 'tube'
}
req। প্যারাম
{
param1: 'there'
}
/
মনে করুন আপনি নিজের রুটের নামটি এভাবে সংজ্ঞায়িত করেছেন:
https://localhost:3000/user/:userid
যা হয়ে যাবে:
https://localhost:3000/user/5896544
আপনি যদি এখানে মুদ্রণ করবেন: অনুরোধ.প্রেমস
{
userId : 5896544
}
সুতরাং
request.params.userId = 5896544
তাই request.params নামে রুট বৈশিষ্ট্য সম্পর্কে একটি অবজেক্ট
এবং অনুরোধ.কিউরিয়ায় ইউআরএল যেমন ক্যোয়ারী প্যারামিটার থেকে আসে:
https://localhost:3000/user?userId=5896544
request.query
{
userId: 5896544
}
সুতরাং
request.query.userId = 5896544
আপনার এখন ডট স্বরলিপি ব্যবহার করে ক্যোয়ারী অ্যাক্সেস করতে সক্ষম হওয়া উচিত।
আপনি যদি অ্যাক্সেস করতে চান তবে বলুন যে আপনি এখানে একটি জিইটি অনুরোধ পেয়েছেন /checkEmail?type=email&utm_source=xxxx&email=xxxxx&utm_campaign=XX
এবং আপনি ব্যবহৃত ক্যোয়ারী বের করতে চান ।
var type = req.query.type,
email = req.query.email,
utm = {
source: req.query.utm_source,
campaign: req.query.utm_campaign
};
অনুরোধ গ্রহণের জন্য স্ব-সংজ্ঞায়িত প্যারামিটারের জন্য প্যারামগুলি ব্যবহার করা হয়, এরকম কিছু (উদাহরণস্বরূপ):
router.get('/:userID/food/edit/:foodID', function(req, res){
//sample GET request at '/xavg234/food/edit/jb3552'
var userToFind = req.params.userID;//gets xavg234
var foodToSearch = req.params.foodID;//gets jb3552
User.findOne({'userid':userToFind}) //dummy code
.then(function(user){...})
.catch(function(err){console.log(err)});
});
আমি সম্পর্কিত একটি গুরুত্বপূর্ণ নোট উল্লেখ করতে চাই req.query
, কারণ বর্তমানে আমি পৃষ্ঠা ভিত্তিক কার্যকারিতা উপর ভিত্তি করে কাজ করছি req.query
এবং আপনার কাছে প্রদর্শন করার জন্য আমার একটি আকর্ষণীয় উদাহরণ রয়েছে ...
উদাহরণ:
// Fetching patients from the database
exports.getPatients = (req, res, next) => {
const pageSize = +req.query.pageSize;
const currentPage = +req.query.currentPage;
const patientQuery = Patient.find();
let fetchedPatients;
// If pageSize and currentPage are not undefined (if they are both set and contain valid values)
if(pageSize && currentPage) {
/**
* Construct two different queries
* - Fetch all patients
* - Adjusted one to only fetch a selected slice of patients for a given page
*/
patientQuery
/**
* This means I will not retrieve all patients I find, but I will skip the first "n" patients
* For example, if I am on page 2, then I want to skip all patients that were displayed on page 1,
*
* Another example: if I am displaying 7 patients per page , I want to skip 7 items because I am on page 2,
* so I want to skip (7 * (2 - 1)) => 7 items
*/
.skip(pageSize * (currentPage - 1))
/**
* Narrow dont the amound documents I retreive for the current page
* Limits the amount of returned documents
*
* For example: If I got 7 items per page, then I want to limit the query to only
* return 7 items.
*/
.limit(pageSize);
}
patientQuery.then(documents => {
res.status(200).json({
message: 'Patients fetched successfully',
patients: documents
});
});
};
আপনি খেয়াল করবে +
সামনে চিহ্ন req.query.pageSize
এবংreq.query.currentPage
কেন? আপনি যদি +
এই ক্ষেত্রে মুছে ফেলেন তবে আপনি একটি ত্রুটি পাবেন এবং সেই ত্রুটি নিক্ষেপ করা হবে কারণ আমরা অবৈধ প্রকারটি ব্যবহার করব (ত্রুটির বার্তা সহ 'সীমাবদ্ধ ক্ষেত্রটি অবশ্যই সংখ্যাসূচক হওয়া উচিত)।
গুরুত্বপূর্ণ : ডিফল্টরূপে যদি আপনি এই ক্যোয়ারী প্যারামিটারগুলি থেকে কিছু বের করেন তবে এটি সর্বদা একটি স্ট্রিং হবে , কারণ এটি ইউআরএল আসবে এবং এটি একটি পাঠ্য হিসাবে বিবেচিত হবে।
যদি আমাদের সংখ্যার সাথে কাজ করার প্রয়োজন হয়, এবং ক্যোয়ারী স্টেটমেন্টগুলি পাঠ্য থেকে সংখ্যায় রূপান্তর করা হয়, তবে আমরা কেবলমাত্র স্টেটমেন্টের সামনে একটি প্লাস চিহ্ন যুক্ত করতে পারি।