为什么我的 PostgreSQL 数据库无法连接到我的 Node.js 后端

Why won't my PosgreSQL database connect in my Node.js backend

构建我的第一个 Node/Express 应用程序,但我无法从 postgres 中提取数据。

这是server.js

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

table设置

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`}))
}

我每次都按'db error'。这里缺少什么 and/or 我该如何调试它?

编辑:错误是说 'mydb' 不存在。

通过执行 .catch(err => console.log(err))

注销错误

我猜 table 名字是错误的,from('mydb') 应该是 from('paintings'),因为那是你的 table 名字。

另一个注意事项。你可以做到

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))