2015-06-24 81 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」