अपना पहला नोड/एक्सप्रेस एप्लिकेशन बनाना और मैं पोस्टग्रेज से डेटा नहीं खींच सकता।

यह server.js . में कनेक्शन है

var db = require('knex')({
      client: 'pg',
      connection: {
        host : '127.0.0.1',
        user : '',
        password : '',
        database : 'mydb'
      }
    });

तालिका स्थापित है

mydb=# \dt
           List of relations
 Schema |   Name    | Type  |   Owner   
--------+-----------+-------+-----------
 public | paintings | table | me
(1 row)

यह मार्ग है

app.get('/crud', (req, res) => main.getTableData(req, res, db))

और यह main.js . में नियंत्रक है

const getTableData = (req, res, db) => {
  db.select('*').from('mydb')
    .then(items => {
      if(items.length){
        res.json(items)
      } else {
        res.json({dataExists: 'false'})
      }
    })
    .catch(err => res.status(400).json({dbError: `db error`}))
}

मैं हर बार 'डीबी त्रुटि' मार रहा हूँ। यहां क्या गुम है और/या मैं इसे कैसे डिबग कर सकता हूं?

संपादित करें: त्रुटि कह रही है 'mydb' मौजूद नहीं है।

0
steams 10 सितंबर 2020, 04:11

1 उत्तर

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

.catch(err => console.log(err)) करके त्रुटि लॉग आउट करें

मेरा अनुमान है कि तालिका का नाम गलत है और from('mydb') शायद from('paintings') होना चाहिए, क्योंकि यह आपका टेबल नाम है।

अन्य नोट में। तुम कर सकते हो

const getTableData = (db) => {
  return (req, res) => {
    db.select('*').from('paintings')
      .then(items => {
        if(items.length){
          res.json(items)
        } else {
          res.json({dataExists: 'false'})
        }
      })
      .catch(err => res.status(400).json({ dbError: `db error` }))
  }
}

और अपना मार्ग ऐसा बनायें

app.get('/crud', main.getTableData(db))
1
Bergur 10 सितंबर 2020, 04:21