2017-10-10 23 views
0

我已經用node.js和postgres作爲db編寫了rest api的代碼。 它在我的系統郵遞員運行良好,我已經部署了相同的代碼給heroku它顯示「應用程序錯誤」在Heroku網站。我已經sequelize連接分貝與node.js使用postgres db在heroku站點中獲取「應用程序錯誤」

My code : 


const pg = require('pg'); 
var Sequelize=require ('sequelize'); 
var app = require('express')();   // Express App include 
var http = require('http').Server(app); // http server 
var env = app.get('env') == 'development' ? 'dev' : app.get('env'); 
var port = process.env.PORT || 8086; 
var bodyParser = require("body-parser"); // Body parser for fetch posted data 

app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); // Body parser use JSON data 

var sequelize = new Sequelize('testdb', 'postgres', '[email protected]', { 
    host: 'localhost', 
    port: 5432, 
    dialect: 'postgres' 
}); 
sequelize 
    .authenticate() 
    .then(() => { 
    console.log('Connection has been established successfully.'); 
    }) 
    .catch(err => { 
    console.error('Unable to connect to the database:', err); 
    }); 

    app.get('/Getdata',function(req,res){ 
    var data = { 
     "Data":"" 
    }; 



    //GET method 
    sequelize.query("SELECT * FROM test_table ", { replacements: { visible: 'true' },type: sequelize.QueryTypes.SELECT}) 
    .then(function(test_table,err,rows) { 
    // We don't need spread here, since only the results will be returned for select queries 
    if(test_table) 
    { 
      data["Data"] = test_table; 
      res.json(data); 
     } 
     else 
     { 
      data["Data"] = 'No data Found..'; 
      res.json(data); 
     } 

    }); 
}); 


When I run "heroku logs --tail --app boiling-river-40656 
" in terminal that shows following error. 


**Unable to connect to the database: { SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:5432** 
2017-10-10T07:55:19.636702+00:00 app[web.1]:  at Connection.connectingErrorHandler (/app/node_modules/pg/lib/client.js:123:14) 
2017-10-10T07:55:19.636703+00:00 app[web.1]:  at emitOne (events.js:96:13) 
2017-10-10T07:55:19.636701+00:00 app[web.1]:  at connection.connect.err (/app/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:96:24) 
2017-10-10T07:55:19.636703+00:00 app[web.1]:  at Connection.emit (events.js:188:7) 
2017-10-10T07:55:19.636705+00:00 app[web.1]:  at emitOne (events.js:96:13) 

請幫我解決這個問題。

在此先感謝。

回答

0

Log說你無法連接到Heroku上的127.0.0.1:5432。在127.0.0.1:5432沒有postgres服務器。 你應該使用heroku postgres add-on(它有一個名爲「Hobby dev」的免費計劃)。

它是嚴格建議您通過聲明環境變量從Heroku的包膜分離開發 env和在代碼中使用它。 數據庫url,pwd,用戶名應該轉到env或設置文件。

+0

同樣的問題在這裏:https://stackoverflow.com/a/40993195/6753239 – ninjarails

相關問題