2015-07-15 2 views
1

Я новичок в мире Node.js и установил приложение, работающее на Heroku (бесплатно) с помощью StrongLoop. Я настраиваю адренер postgresql heroku (свободный уровень) и пытаюсь добавить источник данных в пользовательский интерфейс дугового синтезатора StrongLoop. Этот пользовательский интерфейс обновляет сервер/datasources.json. При попытке подключения к моему источнику данных я получаю эту ошибку:Strongloop Heroku Postgres setup Ошибка SSL

no pg_hba.conf entry for host "X.X.X.X", user "myUser", database "mydb", SSL off 

Я понимаю, что эта проблема должна быть с настройкой SSL на Postgres. Ближайшая документация StrongLoop не совсем обсуждает это: https://strongloop.com/strongblog/postgresql-node-js-apis-loopback-connector/ ... Потому что я использую StrongLoop, а не просто Node.js, документация Heroku также оставила мне недостающую https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-node-js. Я смущен тем, что мне нужно делать именно здесь.

У меня довольно простой формат данных JSON, который я управляю с помощью рулей. Поэтому, если это проблема с тем, чтобы быть на свободном уровне, я открыт для других бесплатных предложений с моей настройкой. Я ценю вашу помощь.

Edit, datasources.json:

{"db":{"name":"db","connector":"memory"}, 
"mydb":{ 
"host":"myhost", 
"port":####, 
"url":"myamazonawsurl:####/mydbname", 
"database":"mydbname", 
"password":"mypw", 
"name":"mydatasourcename", 
"ssl":true, 
"user":"myuser", 
"connector":"postgresql"}} 

Подробнее об ошибке:

error: no pg_hba.conf entry for host "X.X.X.X", user "myuser", database "mydb", SSL off at 
Connection.parseE (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:539:11) at 
Connection.parseMessage (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:366:17) at 
Socket.<anonymous> (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:105:22) at 
Socket.emit (events.js:107:17) at readableAddChunk (_stream_readable.js:163:16) at 
Socket.Readable.push (_stream_readable.js:126:10) 

ответ

3

Основываясь на статье вы связаны, вы должны изменить конфигурацию datasources.json в соответствии с вашим Heroku Окружающая среда.

Получите ваши данные от heroku pg:credentials DATABASE_URL, который выложит ниже (без местоблюстителем я использовал, конечно!):

postgres://user:[email protected]:5432/your-db-name 

Вставить, что в datasources.json:

"accountDB": { 
    "connector": "postgresql", 
    "url": "postgres://user:[email protected]:5432/your-db-name?sslmode=require" 
    } 

В документах PostgreSQL для Loopback приведены некоторые дополнительные сведения - http://docs.strongloop.com/display/public/LB/PostgreSQL+connector - но выше вы должны начать.

+0

Я попытался "SSL = правда?" "Sslmode = требуется?" это не удастся: {"db": {"name": "db", "connector": "memory"}, "mydb": {"host": "myhost", "port": ####, "URL": "myamazonawsurl: ####/mydbname", "база данных": "mydbname", "пароль": "mypw", "имя": "mydatasourcename", "SSL": правда, "пользователь":» myuser "," connector ":" postgresql "}} – woodlumhoodlum

+0

Можете ли вы обновить свой вопрос тем, что вы положили в da tasources.json? Комментарии не форматируют JSON. Если вы также можете опубликовать сообщение об ошибке, которое вы получите, это поможет. Исходя из того, что вы вставили, я не думаю, что вы ввели его правильно. – elithrar

+0

да, извините. Добавили их. Пользовательский интерфейс StrongLoop автоматически помещает строки подключения в свои поля в файле datasources.json. Я вручную добавил «ssl»: true для файла. – woodlumhoodlum

2

Требовать SSL для соединений Postgres, установив следующие переменные окружения в командной строке:

$ export PGSSLMODE=require 
3

Он должен быть не

"devpostgresql": { 
    "url": "postgres://user:[email protected]:5432/dbname?ssl=true", 
    "name": "devpostgresql", 
    "connector": "postgresql" 
    } 
+0

Да,? Ssl = true работал для меня, а не sslmode – Andrew

Смежные вопросы