【问题标题】:ReferenceError: users is not defined when trying to connect to postgresReferenceError:尝试连接到 postgres 时未定义用户
【发布时间】:2021-11-11 19:59:35
【问题描述】:

我一直在关注这个视频https://www.youtube.com/watch?v=ufdHsFClAk0 并且在 32:54 当那个家伙得到结果时我得到一个错误 ReferenceError: users is not defined。到目前为止,这是我的代码

const {Client} = require('pg')
const users = [{ id: 1 }] 
const client = new Client({
    user: "postgres",
    password: "testing",
    host: "BlackPearl",
    port: 5432,
    database: users
})

execute()

async function execute(){
    await client.connect()
    console.log("Connected")
    const results = await client.query("select * from users")
    console.table(results.rows)
    await client.end()
    console.log("Disconnected")
}

here is what i see in pgAdmin4

这是我的 package.json

{
  "name": "expr",
  "version": "1.0.0",
  "description": "",
  "main": "experiment.js",
  "scripts": {
    "test": "node experiment.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "pg": "^8.7.1"
  }
}

在终端我写npm run test

【问题讨论】:

  • database: users 的行是您的错误所在。你还没有写过const users = [{ id: 1 }] 或类似的东西。
  • @t56k 没有帮助:(
  • @t56k,在database: users database 指的是数据库名称而不是用户数组。所以users 应该被引用为数据库名称的实际字符串,或者是之前声明为名称的变量。
  • 我的意思是,它必须被定义为 something,但公平
  • @Adrian Klaver,原来如此,谢谢

标签: javascript node.js postgresql node-postgres


【解决方案1】:

改变这个:

const client = new Client({
    user: "postgres",
    password: "testing",
    host: "BlackPearl",
    port: 5432,
    database: users
})

到这里:

const client = new Client({
    user: "postgres",
    password: "testing",
    host: "BlackPearl",
    port: 5432,
    database: 'users'
})

数据库名称应该是一个字符串,而不是一个引用,如果它被不同的调用(不是users)使用正确的名称

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2018-02-14
    相关资源
    最近更新 更多