मेरे पास यह प्रकार है:

  type Profile {
    id: ID! @isUnique
    email: String! @isUnique
    ...
  }

और एक प्रश्न:

profile(email: String!):Profile

जब मैं किसी ऐसे उपयोगकर्ता के साथ क्वेरी चलाता हूं जो अस्तित्व में नहीं है, तो मेरा अंतर्निहित रिज़ॉल्वर शून्य हो जाता है और मैं ग्राफक्यूएल को यह पसंद करने की उम्मीद कर रहा था।

लेकिन, मुझे यह त्रुटि मिलती है:

Cannot return null for non-nullable field Profile.id.

ऐसा इसलिए होता है क्योंकि क्वेरी से Profile वापस आने की उम्मीद है और Profile में id फ़ील्ड होना चाहिए।

लेकिन, क्वेरी का रिटर्न प्रकार गैर-शून्य नहीं है Profile!, यह Profile है जिसका अर्थ यह होगा कि क्वेरी कुछ भी वापस नहीं कर सकती है।

इसे ठीक से कैसे ठीक करें?

1
Ali Ok 11 जुलाई 2018, 16:45
क्या आप ग्राफ़क्यूएल से पूर्ण प्रतिक्रिया शामिल करने के लिए अपना प्रश्न अपडेट कर सकते हैं, न कि केवल त्रुटि?
 – 
Daniel Rearden
11 जुलाई 2018, 18:45
मुझे ठीक वैसी ही समस्या है, यहाँ आपके पास मेरी पूरी प्रतिक्रिया है justpaste.it/4pqlr
 – 
Merlyn007
20 पद 2018, 09:55

2 जवाब

अपने प्रोफ़ाइल क्वेरी रिज़ॉल्वर में null वापस करने का प्रयास करें। यदि आप किसी खाली वस्तु की तरह कुछ लौटाते हैं, तो प्रोफ़ाइल रिज़ॉल्वर उसे उठाएगा और undefined को Profile.id के रूप में वापस करने का प्रयास करेगा, जैसा कि आपने नोट किया है कि यह एक स्कीमा त्रुटि है।

कुछ इस तरह का प्रयास करें:

const queryProfileResolver = (_, { email }) => {
  // getProfileByEmail should return null if no match is found
  return getProfileByEmail(email)
}

तब आपकी ग्राफ़क्यूएल प्रतिक्रिया कुछ इस तरह दिखाई देगी

{
  data: {
    profile: null
  }
}
0
Nathan 11 जुलाई 2018, 22:35
वही समस्या, समाधान नहीं :(
 – 
Merlyn007
20 पद 2018, 09:54

सबसे पहले आपको अपना डेटा बेस छोड़ना होगा और उपयोग करना होगा types.graphql जैसा है वैसा ही है

type Profile {
    id: ID! @isUnique
    email: String! @isUnique 
    ...
  }

इसे तैनात करें और त्रुटि दूर हो जाएगी।

ऐसा होने का मुख्य कारण यह है कि आपने पहले से ही डेटा को अशक्त के साथ तैनात कर दिया है, इसलिए इसे नहीं बदला जा सकता है, आपको हमारे डेटाबेस को छोड़ने की आवश्यकता है, बस

0
Anuj raval 20 जिंदा 2019, 15:30