为什么我的 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))
构建我的第一个 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))