2014-06-13 15 views
15

पर कंसोल ट्रेस से बचें मेरे आवेदन में मैं अपना डेटा प्राप्त करने के लिए एक आरईएसटी एपीआई का उपयोग कर रहा हूं। तो एक इस

$http.get('api/entity/' + $scope.entityId).success(/* DO STUFF */).error(/* DO STUFF */) 

सेवा में की तरह एक अनुरोध भेजने के लिए, यदि entityId मौजूद नहीं है मैं एक 404. लौट त्रुटि समारोह में मैं यह स्थिति (दूसरा पैरामीटर) का उपयोग को पकड़ने और में उस पर कार्रवाई एक उचित तरीका

मैं इस तथ्य से नाराज हूं कि अपवाद फेंकने और जावास्क्रिप्ट कंसोल को प्रदूषित करने पर कोणीय। ऐसा लगता है कि Angular.js पर होता है: 8165

यह कोणीय बताने का कोई तरीका है कि मैं एक बड़ा डेवलपर हूं और मैं एक अच्छा तरीके से खुद को एक त्रुटि के रूप में देखता हूं?

दूसरे शब्दों में, क्या मैं उस बकवास को आउटपुट करने के लिए कोणीय को बता सकता हूं?

धन्यवाद,

+0

क्या आप वाकई एंगुलरजेएस हैं और ब्राउजर नहीं हैं? मुझे पूरा यकीन है कि ब्राउज़र हर HTTP त्रुटि लॉग करता है। [आप इसे अपने कंसोल लॉगिंग पर फ़िल्टर के रूप में उपयोग कर सकते हैं।] (Http://stackoverflow.com/a/14427545) – Philipp

+0

ठीक है, आप सही हो सकते हैं, मुझे पता है कि केवल पतला मुझे यह है: http://postimg.org/image/g54vhjmrz/ –

उत्तर

15

यह अपने ब्राउज़र की कार्यक्षमता, और नहीं AngularJS कि लॉगिंग करता है का एक हिस्सा है। यहाँ इस पेज के कंसोल से एक नमूना है:

console sample

आप देख सकते हैं यह ठीक उसी त्रुटि संदेश लॉग के रूप में आप प्रश्न की टिप्पणी में जुड़े हुए है, और वास्तव pointing to a part in the source code है, लेकिन मैं किसी भी प्रवेश नहीं जोड़ा था, बयान।

सबसे अच्छी बात यह है कि आप कर सकते हैं this answer का पालन करें और कंसोल में एक फ़िल्टर जोड़ें।

+0

गीट, उत्तर के लिए धन्यवाद! –

+0

यह समाधान नहीं है यदि आप सभी उपयोगकर्ताओं के लिए कंसोल प्रदूषण से बचना चाहते हैं, न केवल स्वयं। सवाल एक अच्छा है। मैं सर्वर को किसी त्रुटि के मामले में अपवाद फेंकना चाहता हूं, और मैं चाहता हूं कि ग्राहक कंसोल को प्रदूषित किए बिना इसे संभाले। – Kesty

+0

हालांकि यह सच है कि ब्राउज़र (मेरे मामले में क्रोम और ओपेरा) "नेटवर्क त्रुटि" लॉग करेगा, आप कंसोल फ़िल्टर में "नेटवर्क छुपाएं" चेकबॉक्स को चेक करके इसे छुपा सकते हैं। हालांकि, जैसा कि मूल प्रश्न बताता है, एंगुलरजेएस द्वारा त्रुटि भी लॉग की जा रही है। मैं भी इसे रोकना चाहूंगा। –

1

मैं इसके लिए एक वास्तविक समाधान नहीं जोड़ रहा हूं क्योंकि फिलिप ने सही उत्तर दिया है, लेकिन मैं इसके लिए "वर्कअराउंड" के बारे में विचार पोस्ट करना चाहता हूं।

आप वास्तव में इस से बचने के लिए चाहते हैं, तो समाधान बस है कि सभी सफलता नहीं प्रतिक्रियाओं एक संभाला प्रतिक्रियाओं के रूप में बनाने के लिए किया जाता है (जैसे: अमान्य क्रेडेंशियल्स, ईमेल से मौजूद है, अवैध आरंभ तिथि, ... और इसी तरह) तो वे सभी सफलता के रूप में कार्य करते हैं और 200 के साथ स्टेटस रिटर्न के रूप में कार्य करते हैं, और आप secondaryStatusCode=400 जैसे किसी अन्य प्रॉपर्टी में प्रतिक्रिया हेडर या बॉडी में जोड़ सकते हैं, फिर फ्रंट एंड फ़ंक्शन के अंदर आप इसे पढ़ने की कोशिश करते हैं, यदि 200 नहीं है।

मुझे पता है कि यह एक बदसूरत समाधान है लेकिन यदि आप वास्तव में इसके लिए एक समाधान खोजने की जरूरत है तो आप इस तरह से उपयोग कर सकते हैं।

+0

उत्तर के लिए धन्यवाद, लेकिन जैसा कि आपने कहा था, यह एक और कामकाज और एपीआई I निर्माण के लिए ग्राहकों को सीधे (बिना सामने के) के उपयोग के लिए "साफ" रहने की आवश्यकता है –

+0

बीटीडब्ल्यू मैं उस बदसूरत को नहीं बुलाऊंगा, यह सेवा करता है उद्देश्य और मैंने इस तकनीक का उपयोग करके बहुत बड़ी राशि या सेवाओं और वेबसाइटों को देखा है। मेरे लिए, मैं ऐसा नहीं करना पसंद करता हूं और जितना संभव हो उतना आराम करने की कोशिश कर रहा हूं ... –

+0

तो मैं हूं, और मुझे लगता है कि हाँ, बहुत सारी परियोजनाएं वास्तव में यह "बदसूरत" समाधान का उपयोग करती हैं। और मुझे पता है कि यह शायद बहुत देर हो चुकी है लेकिन मैं इसे समुदाय के लिए जोड़ना चाहता हूं जो इस तरह के प्रश्न के उत्तर की तलाश में है। –

संबंधित मुद्दे