Unhandled rejection error: relation 'dbname' does not exist

Unhandled rejection error: relation 'dbname' does not exist

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

在我的文本编辑器 (atom) 中,我需要 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

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

看来问题是你没有创建任何 table.

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

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

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

我只能建议您在使用 Knex 之前学习 SQL 的基础知识,它是一个 SQL 查询生成器。如果您不了解底层系统和语言,您将 运行 陷入很多问题,因为 Knex 不会教您这些:)

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

编辑:所以你创建了一个vinyl_information table(对OP的评论)。你的 Knex 命令应该是:

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

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