node.jsからpostgreSQLのDBに接続し、取得した値をexpressのapp.get()にアクセスしたhtmlに返すという処理を行っています。
それをherokuにデプロイしていますが、デプロイするとDBに接続されず、htmlに何も表示されないという状態に悩まされています。
ローカル環境では接続できており、値の取得、表示はできます。
デプロイ後にデベロッパーツールでエラーを見ると、503エラーと出ますが、原因不明で解決できませんでした。
私の推測では、herokuでの公開先と、接続しようとしているDBのネットワークの問題なのかなと思っていますが、
まだ知識が足りず解決できずにいます。
エラー原因や解決法など、ご教示頂ければ幸いです。
その他
・DBはpgAdminでテスト用に作ったDBです。
・フォルダ構成は画像の通りです。
javascript
1const express = require('express'); 2const app = express(); // expressアプリを生成する 3 4app.use(express.static('web')); // webフォルダの中身を公開する 5app.listen(process.env.PORT || 3000, function () { 6 console.log('http://127.0.0.1:3000') 7}) 8// postgreSQL接続に必要な情報 9const { Client } = require('pg'); 10const counter = 0; 11const client = new Client({ 12 user: 'ユーザー名', 13 host: 'ローカルホスト', 14 database: 'データベース名', 15 password: 'パスワード', 16 port: 5432 17}); 18 19// postgreSQL接続 20client.connect(err => { 21 if(err){ 22 console.error(err.stack); 23 } 24}); 25 26// アクセスしたhtmlにDBの値を返す 27app.get('/api/v1/texts',(req,res) =>{ 28 const query = "select id from personal order by id;"; 29 client.query(query) 30 .then(response => { 31 32 var id = response.rows; 33 res.json(id); 34 client.end(); 35 }) .catch(e => console.error(e.stack)) 36})