错误:在node.js中连接ECONNREFUSED - 数据库

时间:2015-06-24 17:21:17

标签: javascript node.js postgresql

我是node.js的新手,并从书中学习。我在书中有一些代码,当我启动它时会产生错误。我正在寻找解决方案,但任何人都有解决方案。所以我决定问自己的问题。

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

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

var pg = require('pg');
var conString = "tcp://root:root@localhost: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中的端口,从这里调试我的代码和每个解决方案。有人帮忙吗?

3 个答案:

答案 0 :(得分:0)

根据他们的Documentation,看来通信所需的协议是postgres而不是tcp。尝试将您的conString更改为

'postgres://root:root@localhost:5432/dataBase'

这会将协议从tcp更改为postgres,这是数据库与您通信时所期望的。

答案 1 :(得分:0)

原因可能是与postgreSQL的连接。试试cd C:\path\to\postgres\bin psql.exe -U root dataBase 。如果它正在侦听,请尝试通过命令行连接:

Windows:

psql -U root dataBase

<强> Linux的:

nth-of-type

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

  1. Port it's listening(5432)
  2. 配置pg_hba.conf
  3. 用户和数据库名称(在本例中为root和dataBase)

答案 2 :(得分:0)

首先通过此命令检查mysql连接端口

ps ax |grep mysqld

结果应该像&#34; mysql.sock --port = 3300&#34;

然后转到 node_modules 下的mysql文件夹并打开 ConnectionConfig.js 文件&gt;更改端口以更正一个&#34; 3300&#34;