0
0

More than 3 years have passed since last update.

Node.js(express)でpostgresSQLのSSL認証が通らないことについて

Posted at

はじめに

店舗予約の受付をするLineBotの開発をするために
Node.js(express)を開発言語にしました。

PostgresSQLでDB作成をしたさいに
SSL接続が原因でエラーとバトルした件について解説します。

少しでもお役に立てれば幸いです。

誤った情報だと感じましたら教えてください!

開発環境

(1)macOS 10.15.7
(2)Node.js 12.19.0
(3)express 4.17.1
(4)line/bot-sdk" 7.2.0
(5)Postgres 8.5.1
(6)Heroku

エラー内容

index.js

const { Client } = require('pg');

//Postgres環境変数を設定//

const connection = new Client({
  user: process.env.PG_USER,
  host: process.env.PG_HOST,
  database: process.env.PG_DATABASE,
  password: process.env.PG_PASSWORD,
  port: ****
});
connection.connect();

//クエリ文//

const userTable = {
    text:'CREATE TABLE IF NOT EXISTS users (id SERIAL NOT NULL, line_uid VARCHAR(255), display_name VARCHAR(255), timestamp VARCHAR(255), trigger SMALLINT, remedy SMALLINT, pelvis SMALLINT);'
 };

//クエリを実行するためのコード//

connection.query(userTable)
   .then(()=>{
       console.log('table users created successfully!!');
   })
   .catch(e => console.log(e));

テーブルができているか確認をするために

ターミナル
$ heroku pg:psql

データベースモードになったら

ターミナル
DATABASE=> select * from users; 
ここで怒られます。 orz
ターミナル

ERROR:  relation "users" does not exist  //"users"との関係性がありません

LINE 1: select * from "users";

((((;゚Д゚)))))))

解決策

エラー文を検索しても出てくる記事が

1、select * from "users"とダブルクォーテーションで囲め!!

2、大文字と小文字が〜〜〜

など変更しても解決にならず。

どうしても分からず質問したところ
Postgres環境変数を修正しましょう!!これで解決できます!!と素敵なアドバイスをもらいました♫

index.js
//Postgres環境変数を設定//

const connection = new Client({
  connectionString: process.env.DATABASE_URL,
  ssl: {
    rejectUnauthorized: false    //SSL接続なくても許可するよーと宣言
  }
});
connection.connect();

コードの変更をしたので確認します!!!

先程と同じようにデータベースモードにします。

ターミナル
$ heroku pg:psql
ターミナル
DATABASE=> select * from users;

上記にコードを修正した結果

ターミナル
ファイル名::DATABASE=> select * from users;
 id | line_uid | display_name | timestamp | trigger | remedy | pelvis 
----+----------+--------------+-----------+---------+--------+--------
(0 rows)

おけ👍

考察

今回のエラーはSSL接続が許可されておらず認証されないことによって起きたと考えています。

(1)最近仕様が変更になった出来事なのか?

(2)SSL接続がデフォルトに変更されたのか?

参考文献が見つからず原因がわかる方がいらっしゃいましたら、ご教授ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0