मुझे कोई समस्या है मुझे लूपबैक के दस्तावेज़ों में कोई जवाब नहीं मिल रहा है।पहले रिमोट रिमोट हुक के अंदर एक फ़िल्टर जोड़ना
कहें कि मेरे पास मॉडल Company
और एक मॉडल Employee
है। Company
और इसके Employees
के बीच 1 एक्सएन संबंध है। जब /api/Employees
कहा जाता है, सर्वर सभी कर्मचारियों को वापस देता है।
मैं केवल उन कर्मचारियों की सूची वापस करना चाहता हूं जो सूची में अनुरोध करने वाले उपयोगकर्ता के साथ एक ही कंपनी में हैं।
इस के लिए, मैं एक दूरस्थ हुक
Employee.beforeRemote('find', function(context, modelInstance, next) {
var reject = function() {
process.nextTick(function() {
next(null, false);
});
};
// do not allow anonymous users
var userId = context.req.accessToken.userId;
if (!userId) {
return reject();
}
//I get the details of the user who sent the request
//to learn which company does he belong to
Employee.findById(userId, function(err, user) {
if(!context.req.query.filter) context.req.query.filter={};
context.req.query.filter.where = {brandId:user.companyId};
console.log(context.req.query);
next();
});
});
मुझे लगा कि यह हर बार काम करना चाहिए बनाया है, लेकिन appearantly यह केवल काम करता है जब खोज पहले से ही कुछ क्वेरी फिल्टर है की तरह शामिल हैं - हालांकि console.log एक प्रिंट सही context.req.query ऑब्जेक्ट।
मुझे क्या याद आ रही है? किसी भी तरह की सहायता का स्वागत किया जाएगा!
क्या आप कह रहे हैं कि 'findRemote()' हुक फ़ंक्शन को नहीं कहा जा रहा है जब 'find() 'पर कोई फ़िल्टर नहीं है, या आपका कोड विशेष रूप से काम नहीं कर रहा है कोई फ़िल्टर प्रदान नहीं किया जाता है? – jakerella
समस्या यह थी कि context.req.query.filter को क्लाइंट अनुरोध से सेट नहीं किया गया था जब अनदेखा किया जाता है। हालांकि, एलेक्स के सुझाव ने काम किया, आपकी मदद के लिए सभी को धन्यवाद। –