जब मैं एक प्रश्न के बाद pool.end() का उपयोग करता हूं तो मुझे त्रुटि संदेश मिलता है "अपरिभाषित की संपत्ति 'पंक्तियां' नहीं पढ़ सकता"। मुझे ऐसा लगता है कि प्रश्न समाप्त होने के बाद मुझे pool.end का उपयोग नहीं करना चाहिए। तो मुझे pool.end() का उपयोग कब करना चाहिए?

नीचे मेरा कोड स्निपेट है:

const pool = new Pool({
    user: process.env.PGUSER,
    host: process.env.PGHOST,
    database: process.env.PGDATABASE,
    password: process.env.PGPASSWORD,
    port: process.env.PGPORT
})

// Display schedule on home page
app.get('/', (req, res) => {
    const displaySchedule = `SELECT * FROM schedule`;

    pool.query(displaySchedule, (err, results) => {
        if(err) { 
            throw err; 
        }
        else {
            res.render('index', {schedules: results.rows});
        }
    })

    //pool.end();
});
0
supmethods 24 अगस्त 2021, 06:47

2 जवाब

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

pool.end पूल को बंद कर देता है। आपके मामले में - एक वेब परिदृश्य में - आप ऐसा नहीं करना चाहते हैं। अन्यथा आपको प्रत्येक नए अनुरोध पर एक पूल से जुड़ना होगा। यह पूलिंग के उद्देश्य को हरा देता है।

pool.end को कॉल किए बिना आपके उदाहरण में - आप pool.query का उपयोग कर रहे हैं तरीका। आप यहां पूरी तरह से तैयार हैं और आपको किसी भी प्रकार के क्लाइंट क्लीनअप या पूल एंडिंग का उपयोग करने की आवश्यकता नहीं है।

पूल आमतौर पर एक लंबा होता है आपके आवेदन में -लाइव प्रक्रिया। आपको लगभग कभी भी इसे वेब एप्लिकेशन में स्वयं बंद नहीं करना पड़ता है।

आपको इसे बंद करना होगा - जब आप गतिशील रूप से पूल बना रहे हों या जब आप एक सुंदर शटडाउन का प्रयास कर रहे हों।

उदाहरण के लिए: एक परीक्षण वातावरण में, जहां आप सभी सुविधाओं/परीक्षणों से पहले एक पूल से जुड़ते हैं और परीक्षण चलने के बाद डिस्कनेक्ट हो जाते हैं, आप अंत में सभी गतिशील रूप से बनाए गए पूलों पर pool.end को कॉल करते हैं।

1
madflow 29 अगस्त 2021, 13:25

https://github.com/brianc/node-postgres/issues/1670

यह समस्या पूल.एंड () के उपयोग का वर्णन करती है

0
Vivek K J 24 अगस्त 2021, 03:49