【问题标题】:Cant connect to postgres database?无法连接到 postgres 数据库?
【发布时间】:2017-11-12 02:17:34
【问题描述】:

好的。我已按照 Heroku https://devcenter.heroku.com/articles/getting-started-with-nodejs#provision-a-database 中列出的所有说明进行操作,并正在尝试完成最后一步 - 让我的页面打印我显然刚刚使用 PostGres 配置的数据库的内容。

这就是我对 Postgres 的看法:

Heroku 的示例说要像这样连接到数据库:

app.get('/db', function (request, response) {
  pg.connect(process.env.DATABASE_URL, function(err, client, done) {
    client.query('SELECT * FROM test_table', function(err, result) {
      done();
      if (err)
       { console.error(err); response.send("Error " + err); }
      else
       { response.render('pages/db', {results: result.rows} ); }
    });
  });
});

但是当我用这个运行我的页面时,我发现表'test_table'不存在。

按照此操作并手动输入数据库的 URL Trying to connect my node.js to Heroku PostgreSQL database. Following Heroku Postgres tutorial 我收到此错误:ERR_CONNECTION_REFUSED

我无法获取数据库的内容。我该怎么做?

可能的问题:我没有 .env 文件,也不知道如何配置。不确定这是否会影响任何事情

【问题讨论】:

    标签: javascript database postgresql heroku


    【解决方案1】:

    我猜你需要create a test_table table。来自bottom of the page you posted

    $ heroku pg:psql
    psql (9.5.2, server 9.6.2)
    SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
    Type "help" for help.
    => create table test_table (id integer, name text);
    CREATE TABLE
    => insert into test_table values (1, 'hello database');
    INSERT 0 1
    => \q
    

    【讨论】:

    • 我做到了,一切都恢复得很好。问题出在 Postgres 中,如果我在这里理解的话,我似乎没有一个名为“test_table”的表。现在终端说当我再次这样做时“关系“test_table”已经存在”
    • 我没有 .env 文件。会这样吗?
    【解决方案2】:

    检查 postgres 是否期望通过 pg-promise 执行区分大小写的查询(特别是表名)。

    根据错误,nodejs 能够与 postgres 建立连接。

    【讨论】:

    • 你能重申一下吗?我不明白你在引导我去 cgeck 做什么
    • 我的意思是说。如果您的表名是使用“Test_table”(T 是大写字母)创建的,那么必须在您的表名中使用 T 大写字母来触发查询。因此,您首先检查 postgres 中的表定义,并在查询时使用相同的表名。参考postgresql.org/message-id/4491A34B.3040704@tgice.com
    • 不,我从 heroku 的教程中复制粘贴并尝试以相同的方式创建一个新表。
    【解决方案3】:

    要创建新表,您应该运行以下代码:

    heroku pg:psql
    

    然后将表添加到您的数据库再次在 cmd 上运行此代码:

    CREATE TABLE test_table(id integer, name text);
    

    它与 mySQL 数据库非常相似,您也可以运行其他查询,例如插入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-31
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 2019-12-14
      • 1970-01-01
      相关资源
      最近更新 更多