【问题标题】:Unhandled rejection error: relation 'dbname' does not exist未处理的拒绝错误:关系“dbname”不存在
【发布时间】:2019-05-14 18:47:52
【问题描述】:

我有一个通过 Postgresql 创建的数据库。我正在尝试通过 Knex.js 连接到数据库。

在我的文本编辑器(原子)中,我需要 knex

const knex = require('knex');

第二 - 我已经开始像这样初始化库:

const postgres = knex ({ client: 'pg', connection: { host: '127.0.0.1', port: '5432', user: 'is myself', password: '', database: 'mediumrare_database' } });

第三 - 我正在尝试从该数据库中提取数据,如下所示:

postgres.select('*').from('mediumrare_database).then(data => {console.log(data)});

最后,我收到的错误信息如下:

Unhandled rejection error: relation "mediumrare_database" does not exist

【问题讨论】:

  • 我认为它不相关,但您的查询末尾缺少单引号 postgres.select('*').from('mediumrare_database')
  • 您好,欢迎来到 SO !如果在修复@Rashomon 建议的内容后(确实可能是问题所在),错误仍然存​​在,我建议您检查一下:stackoverflow.com/questions/695289/…
  • @Rashomon 你是不是这个意思postgres.select('*').from('mediumrare_database')'
  • @SherloxFR 我确实阅读了您发布的另一个论坛,但那是处理小写/大写命名约定。我已经能够从终端启动“psql”数据库了。

标签: node.js reactjs postgresql express knex.js


【解决方案1】:

您的数据库名为mediumrare_database,您尝试从中获取数据的表的命名方式相同。

看来问题在于您没有创建任何表。

在 SQL 中,您的 Knex 命令将是: SELECT * FROM mediumrare_database;,表示Return all the datas inside the 'mediumrare_database' table

您首先需要使用CREATE 指令创建您的数据库结构(用于存储数据的表)。见https://knexjs.org/#Schema-createTable

FROM 用于表,因为您已经在连接字符串中指定了要连接的数据库。

我只能建议您在使用 Knex(一个 SQL 查询生成器)之前学习 SQL 的基础知识。如果你不了解底层系统和语言,你会遇到很多问题,因为 Knex 不会教你:)

你可以查看the one of CodeCademy,他们总是有很好的资源。

编辑:所以您创建了一个vinyl_information 表(OP 上的cmets)。你的 Knex 命令应该是:

postgres
  .select('*')
  .from('vinyl_information')
  .then(data => console.log(data))

我有一个 Discord 服务器,我们互相帮助,如果您需要有关该主题的进一步帮助,请不要犹豫加入它 :) https://discord.gg/C2bVzgb

【讨论】:

  • 首先感谢您的帮助。我确实有你写的代码。 postgres.select('*').from('mediumrare_database').then(data => { console.log(data); });
  • 你是神!它的工作原理,非常感谢你。我一定会深入学习那个 SQL 课程。
  • @alxdelgado 我建议您使用我发布的链接加入 Discord,对于那些“简单”的请求,我将能够更快更简单地为您提供帮助 :) 请您接受并支持我的回答以结束您的问题?
猜你喜欢
  • 2017-09-20
  • 2018-12-18
  • 2019-06-02
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
  • 2019-10-27
  • 2017-04-04
相关资源
最近更新 更多