2015-06-24 52 views
0

我是在node.js中新建的,并从书中学习它。我在书中有一些代码,当我开始它时,会产生一个错误。我正在寻找解决方案,但任何人都有解决方案给我。所以我决定问自己的问题。错误:在node.js中连接ECONNREFUSED - 数据库

我的代码使用postgreSQL运行,它的require('pg');。它已经安装在node_modules

这是我从一个文件中的所有代码: postgreSQL.js:

var pg = require('pg'); 
var conString = "tcp://root:[email protected]:5432/dataBase"; 
var client = new pg.Client(conString); 
client.connect(); 

client.query(
    'insert into users (name, age) values ("$1, $2") returning id', 
    ['Michal', 29], 
    function(err, result){ 
     if(err) throw err; 
     console.log('Id form this record '+ result.rows[0].id); 
    } 
); 

,当我想启动它的产生我在cmd中的错误:

 throw er; // Unhandled 'error' event 
      ^
Error: connect ECONNREFUSED 
    at exports._errnoException (util.js:746:11) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19) 

我试图检查telnet中的端口,从这里调试我的代码和每个解决方案。任何人帮助?

+0

你可以在本地主机通过命令行连接与用户root到PostgreSQL? –

+0

只有当我设置:'节点调试postgreSQL.js' 然后在cmd通过telnet: 'telnet localhost 5858' – kjugi

+0

我的意思是这样的:'psql -U root dataBase' - 通过命令行运行。 –

回答

0

原因可能是与postgreSQL的连接。尝试telnet localhost 5432。如果听,尝试通过命令行进行连接:

的Windows:

cd C:\path\to\postgres\bin 
psql.exe -U root dataBase 

的Linux:

psql -U root dataBase 

如果连接失败,您需要验证与数据库的连接:

  1. Port它监听(5432)
  2. 配置在pg_hba.conf的
  3. 用户和数据库名称(在这种情况下是根和数据库)
+0

是啊,这真的帮助我!我在postgreSQL中使用默认服务器,因为我无法创建自己的,但现在不是问题。 – kjugi

+0

也许用户是postgres。 –

+0

是的,我用它来代替,接下来我创建了我自己的关系,它正在工作。只有一件事对我来说很奇怪,为什么在postgresql中auto_increment是串行的。在MySQL中我使用auto_increment。但现在一切正常,谢谢:) – kjugi

0

根据它们的Documentation,看起来预期通信的协议是postgres而不是tcp。试着改变你的conString到

'postgres://root:[email protected]:5432/dataBase'

这将改变从TCP到Postgres的协议是什么,当你与它通信的数据库期待。

+0

我改变了,但它不会帮助我。仍然是相同的错误 – kjugi

0

首先由该命令检查mysql的连接端口

ps ax |grep mysqld 

结果应该是像 “的mysql.sock --port = 3300”

然后进入到mysql文件夹下node_modules和开放ConnectionConfig.js文件>变化端口纠正一个“3300”