हर बार जब मैं cd टर्मिनल या iTerm2 (मैं Macos 10.14.5, Node 12.13.0 चला रहा हूँ) का उपयोग करके किसी विशेष निर्देशिका का उपयोग करता हूँ, तो मुझे निम्न त्रुटि मिलती है जो प्रदान की गई ´.env´ फ़ाइल के बारे में शिकायत करती प्रतीत होती है मुझे मेरी टीम द्वारा। उन्हें त्रुटि नहीं मिल रही है।

.env:22: parse error near '}'  
dotenv: error when sourcing '.env' file 
.env:22: parse error near '}'

लाइन 22, जो त्रुटि उत्पन्न कर रही है, है

COOKIE_SETTINGS={"isSecure": false, "isSameSite": false, "isHttpOnly": true, "encoding": "base64json", "path": "/"}

कोई सुराग मैं इसका समाधान कैसे कर सकता हूं? किसी भी अंतर्दृष्टि के लिए धन्यवाद।

0
Cerulean 11 नवम्बर 2019, 18:25

2 जवाब

सबसे बढ़िया उत्तर

आप वस्तुओं को .env फ़ाइल के अंदर संग्रहीत नहीं कर सकते। इसका समाधान है: JSON ऑब्जेक्ट को स्ट्रिंग करें और env वैरिएबल के रूप में सेव करें। फिर पार्स करें और जब आपको अपनी वस्तु की आवश्यकता हो तो इसका इस्तेमाल करें।

एक और समाधान इस तरह के चर लिखना है:

COOKIE_SETTINGS_IS_SECURE = false
COOKIE_SETTINGS_IS_SAME_SITE = false
...
1
Nicolae Maties 11 नवम्बर 2019, 18:31

Env को पार्स करते समय यह त्रुटि प्रतीत होती है। मुझे लगता है कि इस मामले के लिए env सिर्फ स्ट्रिंग या नंबर की तरह समर्थन करता है। शायद आप .env . में उपयोग कर सकते हैं

COOKIE_SETTINGS="{'isSecure': false, 'isSameSite': false, 'isHttpOnly': true, 'encoding': 'base64json', 'path': '/'}"

JS में ऑब्जेक्ट पर वापस जाने के लिए बस JSON.parse का उपयोग करें

cookieSettings= process.env.DB_HOST ? JSON.parse(process.env.DB_HOST) : null;
1
Tung Duong 11 नवम्बर 2019, 18:32