2017-06-10 135 views
0

好的。我遵循Heroku https://devcenter.heroku.com/articles/getting-started-with-nodejs#provision-a-database上列出的所有方向,并试图完成最后一步 - 让我的页面打印出我刚刚配置了PostGres的数据库的内容。无法连接到postgres数据库?

这是Postgres的样子对我说:

enter image description here

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'不存在。

enter image description here

在此之后并在URL手动把数据库Trying to connect my node.js to Heroku PostgreSQL database. Following Heroku Postgres tutorial 我得到这个错误:ERR_CONNECTION_REFUSED

我不能对任何事情分贝的内容。我该怎么做呢?

可能的问题:我没有.env文件,也不知道如何配置一个。不知道这是否影响任何东西

回答

0

我想你需要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 
+0

我做到了,所有回来都很好。问题是在Postgres中它没有出现我有一个名为“test_table”的表,如果我在这里理解..现在终端说当我再次这样做“关系”test_table“已存在” – skyguy

+0

我没有一个.env文件。这可能吗? – skyguy

0

检查是否Postgres的期望通过PG-承诺或不执行区分大小写的查询(特别是表名)。

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

+0

你能重申一下吗?我不明白你是什么导演我cgeck – skyguy

+0

我的意思是说。如果用“Test_table”(T是大写字母)创建的表名称必须在表名中用T capital进行查询。所以你首先检查postgres中的表定义并在查询时使用相同的表名。请参阅https://www.postgresql.org/message-id/[email protected] –

+0

不,我从heroku的教程复制粘贴,并试图以同样的方式创建一个新表。 – skyguy