Чтобы очистить ваш Express API, я бы выполнил рефакторинг следующим образом:
// Express App Setup
const express = require(‘.express’);
const bodyParser = require(‘body-parser’);
const cors = require(‘cors’);
const app = express();
app.use(cors());
app.use(bodyParser.json());
// Postgres Client Setup
const { Pool } = require(‘pg’);
const pgClient = new Pool({
user: keys.pgUser,
host: keys.pgHost,
database: keys.pgDatabase,
password: keys.pgPassword,
port: keys.pgPort
});
pgClient.on(‘error’, () => console.log(‘Lost PG Connection’));
pgClient.query(‘CREATE TABLE IF NOT EXISTS values (number INT)’)
И это при условии, что вам еще не удалось создать успешное соединение, что означает, что вы еще не создали таблицу, что вам нужно сделать для подключения.
Таким образом, имя таблицы будет представлять собой значения и будет содержать один столбец информации, который будет называться числом, и это индекс отправленного значения из приложения веб-интерфейса, которое я подключил к своему Express API, так что вам придется настроить этот запрос таблицы к спецификациям вашего проекта, но вы будете использовать CREATE TABLE IF NOT EXISTS
.
Затем я добавляю оператор catch, чтобы, если что-то пошло не так при создании этой таблицы, вы утешили сообщение об ошибке, например:
// Express App Setup
const express = require(‘.express’);
const bodyParser = require(‘body-parser’);
const cors = require(‘cors’);
const app = express();
app.use(cors());
app.use(bodyParser.json());
// Postgres Client Setup
const { Pool } = require(‘pg’);
const pgClient = new Pool({
user: keys.pgUser,
host: keys.pgHost,
database: keys.pgDatabase,
password: keys.pgPassword,
port: keys.pgPort
});
pgClient.on(‘error’, () => console.log(‘Lost PG Connection’));
pgClient.query(‘CREATE TABLE IF NOT EXISTS values (number INT)’).catch(err => console.log(err));
Для вашего docker-compose.yml
Я бы просто реорганизовал это так:
version: "3"
services:
postgres:
image: "postgres:latest"
и запустите docker-compose up
и посмотрите, как это будет.