无法使用 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',不是Usertable的内容。

如果我要在数据库中搜索任何其他 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.

相同

参考文献: