使用pg库连接PostgreSQL提示ReferenceError: users未定义如何解决?
解决方案
错误原因
你遇到的ReferenceError: users is not defined报错首先要排查变量声明顺序:如果你实际运行的代码里,const users = [{ id: 1 }]这行写在了new Client实例化的代码之后,就会因为变量未提前声明触发该报错,调整变量顺序到使用前即可解决语法层面的报错。
但你的代码本身还存在逻辑错误,即使解决了未定义的问题也无法正常运行:
- pg客户端的
database配置项要求传入字符串格式的PostgreSQL数据库名称,你现在赋值的是JS代码里定义的users数组,完全不符合参数要求。 - 你定义的
const users = [{ id: 1 }]是JS运行时的内存变量,和PostgreSQL数据库里的库、表没有任何关联,完全无用可以直接删除。 - 你执行的
select * from users查询的是PostgreSQL对应数据库下的users表,需要提前在你连接的数据库中创建好该表再执行查询,否则会触发表不存在的报错。
修正后的代码示例
const {Client} = require('pg') const client = new Client({ user: "postgres", password: "testing", host: "BlackPearl", port: 5432, // 此处替换为你pgAdmin中实际创建的PostgreSQL数据库名称的字符串形式 database: "你的实际数据库名" }) execute() async function execute(){ try { await client.connect() console.log("Connected") const results = await client.query("select * from users") console.table(results.rows) } catch (err) { console.error('运行错误: ', err) } finally { await client.end() console.log("Disconnected") } }
内容的提问来源于stack exchange,提问作者Den
相关产品推荐
相关产品推荐

