Ошибка PostgreSQL при попытке подключения из приложения узла - PullRequest
0 голосов
/ 30 декабря 2018
FATAL: no PostgreSQL user name specified in startup packet

Журналы из моего экземпляра postgreSQL в моем кластере kubernetes при попытке подключиться к нему, выполнив следующие действия:

const { POSTGRES_DATABASE, POSTGRES_USERNAME, POSTGRES_PASSWORD } = require('../config/config');

const Sequelize = require('sequelize');
    const conn = new Sequelize(POSTGRES_DATABASE, {
        username: POSTGRES_USERNAME,
        password: POSTGRES_PASSWORD
    });

config / config.js

    const config = {
        POSTGRES_DATABASE: 'postgres://postgres/postgresdb',
        POSTGRES_USERNAME: 'postgresadmin',
        POSTGRES_PASSWORD: 'admin123',
        SERVER_PORT: '5000'
    }

module.exports = config;

IЯ использую SequelizeJS в nodeJS.http://docs.sequelizejs.com/

Похоже, что запросы соединяются нормально, потому что они видят попытки в журналах postgreSQL.Однако что-то идет не так, и мне интересно, не так ли это с разрешениями в postgres или службе узлов.

Оцените некоторую помощь или идеи

1 Ответ

0 голосов
/ 30 декабря 2018

В соответствии с документацией Sequelize, которую вы связали, аргументами для создания нового соединения являются db, username, password.Ваш код сделал db, а затем объект с ключами имени пользователя и пароля.Этот объект некорректен и не позволяет найти имя пользователя или пароль.Попробуйте вместо этого:

const { POSTGRES_DATABASE, POSTGRES_USERNAME, POSTGRES_PASSWORD } = require('../config/config');

const Sequelize = require('sequelize');
const conn = new Sequelize(POSTGRES_DATABASE, POSTGRES_USERNAME, POSTGRES_PASSWORD);

Sequelize разрешает разрешать необязательный объект параметров в качестве последнего аргумента, но имя пользователя и пароль там не должны быть.

Эта страница документации меня смущает.

http://docs.sequelizejs.com/manual/installation/usage.html

Я считаю, что вам нужно либо определить все в объекте, либо сделатьбаза данных, имя пользователя и пароль как отдельные аргументы, но я не вижу поддержки базы данных в аргументах и ​​имени пользователя / пароля в объекте.

Похоже, это должно сработать:

const conn = new Sequelize({
  database: POSTGRES_DATABASE,
  username: POSTGRES_USERNAME,
  password: POSTGRES_PASSWORD
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...