हमारे पास कई नोडजेस डिमॉन्स हैं जो एक ही दृढ़ता परत साझा करने के दौरान मोंगोस का उपयोग करते हैं (क्वेरी वाले साझा मॉड्यूल)।डार्क मोंगोज़ जादू: "खोजने के लिए अवैध तर्क"
(समान एक हमेशा) इन डेमॉन में से एक में हम बेतरतीब ढंग से (कई बार एक सप्ताह) नेवला से निम्न त्रुटि मिलती है:
नेवला: findOne को अमान्य तर्क()
हमने सभी प्रश्नों की जांच की है और यह पता लगाने में सक्षम नहीं है कि यह कहां से आ सकता है। त्रुटि कॉल स्टैक हर बार अलग होती है (कोई विशिष्ट मोंगोज़ कॉल इस समस्या का कारण नहीं है) इसलिए हमें नहीं लगता कि यह व्यवसाय तर्क के लिए विशिष्ट है।
क्रम कुछ डिबगिंग ऐसा करने के लिए हम निम्न लॉगिंग जोड़ा मामले में त्रुटि फिर से होता है:
log({
// What mongoose checks (both false -> the error).
isInstanceOfMQuery: conds instanceof mquery,
isObject: mquery.utils.isObject(conds),
// Trying to find out what this value is.
conds,
toString: Object.prototype.toString.call(conds)
inspect: util.inspect(conds, { showHidden: true, depth: null, showProxy: true })
})
conds
तर्क यह है कि नेवला के बारे में शिकायत कर रहा है। लॉग() पूरी चीज JSON.stringify() करेगा।
यह लॉग कि यह कॉल से हुई में से एक है:
{
"isInstanceOfMQuery": false,
"isObject": false,
"conds": {},
"toString": "[object Null]"
"inspect": "{}",
}
अब यह मेरे confuses और भी ... कैसे conds {}
और null
एक ही समय में किया जा सकता है ?!
जवाब मैं तलाश कर रहा हूँ:
- मैं कैसे उद्देश्य यह है कि conds शामिल इस तरह का पुन: पेश कर सकते हैं?
- आप एक बग के साथ कैसे आगे बढ़ेंगे जो स्पष्ट रूप से यादृच्छिक रूप से और शायद ही कभी होता है?
- क्या हम यह पहचानने के लिए लॉग इन कर सकते हैं कि किस तरह के मूल्य conds है या यह कहां से आता है?
किसी भी विचार की सराहना की!
नोड का कौन सा संस्करण आप चल रहे हैं? मैं पूछता हूं क्योंकि मैंने इसे यादृच्छिक रूप से नोड 7.4.0 के साथ देखा है लेकिन 6.9.2 के साथ नहीं। – Brett
मैंने कुछ अन्य वास्तव में खतरनाक सामान देखा जो ऐसा लगता था कि यह मोंडोज 4 के साथ नोड 7 में रहस्यमय रूप से शून्य क्वेरी ऑब्जेक्ट्स के साथ कुछ करने के लिए था, फिर से नोड 6 के साथ नहीं देखा गया। – Brett
हम वर्तमान में 7.x संस्करणों पर चल रहे हैं अभी कुछ समय के लिए। मैंने थोड़ी देर पहले मोंगोज़ के साथ काम करने के लिए एक पुल अनुरोध किया था। अजीब चीज यह है कि हमारे द्वारा उसी नोड संस्करण के साथ चल रहे सभी अन्य डिमों में यह समस्या नहीं है: -/ टिप के लिए धन्यवाद! – patrickd