无法使用 node-postgres 从 Node 访问 Postgres 中的正确表
Unable to reach the proper tables in Postgres from Node using node-postgres
我正在尝试使用 node-postgres
从 Node 连接到 postgres,但即使授权已通过,我也无法搜索到 table。例如,当我执行:
const { Client } = require('pg')
const client = new Client({
user: 'username',
password: 'somepassword',
host: 'hostinfo',
port: '5432',
database: 'databaseInfo',
ssl: true,
})
const execute = async() => {
try {
await client.connect()
await client.query("BEGIN")
const results = await client.query("select * from User")
await client.query("COMMIT")
console.log(results.rows)
} catch(err) {
throw new Error(err)
} finally {
await client.end()
console.log("Finished")
}
}
execute()
是returns数据库的User,也就是我用来访问数据库的'username',不是User
table的内容。
如果我要在数据库中搜索任何其他 table,例如 Review
table,错误消息显示
UnhandledPromiseRejectionWarning: Error: error: relation "review" does
not exist
如果你的table真的叫"User"(大写"U"),你应该在查询时引用它的名字,像这样:
const results = await client.query('select * from "User"')
不加引号时,PostgreSQL 会认为您正在调用函数别名 user
,与 current_user
.
相同
参考文献:
我正在尝试使用 node-postgres
从 Node 连接到 postgres,但即使授权已通过,我也无法搜索到 table。例如,当我执行:
const { Client } = require('pg')
const client = new Client({
user: 'username',
password: 'somepassword',
host: 'hostinfo',
port: '5432',
database: 'databaseInfo',
ssl: true,
})
const execute = async() => {
try {
await client.connect()
await client.query("BEGIN")
const results = await client.query("select * from User")
await client.query("COMMIT")
console.log(results.rows)
} catch(err) {
throw new Error(err)
} finally {
await client.end()
console.log("Finished")
}
}
execute()
是returns数据库的User,也就是我用来访问数据库的'username',不是User
table的内容。
如果我要在数据库中搜索任何其他 table,例如 Review
table,错误消息显示
UnhandledPromiseRejectionWarning: Error: error: relation "review" does not exist
如果你的table真的叫"User"(大写"U"),你应该在查询时引用它的名字,像这样:
const results = await client.query('select * from "User"')
不加引号时,PostgreSQL 会认为您正在调用函数别名 user
,与 current_user
.
参考文献: