Проблема с Knex? EAI_AGAIN - PullRequest
0 голосов
/ 28 апреля 2020

Независимо от того, что я делаю, я продолжаю получать эту ошибку при запуске knex.

"errno": "EAI_AGAIN",
"code": "EAI_AGAIN",
"syscall": "getaddrinfo",
"hostname": "knex",
"host": "knex",
"port": 3

Я подключен к localhost и уверен, что все делаю правильно. Точная настройка работала, когда я последний раз открывал этот проект. Я даже подтвердил, что я был прав npm и версии узла

const knexConnection = knex({
    client: 'pg',
    connection: "postgres://user:password@localhost:5432/db-name",
})

Ввод имени пользователя, пароля и т. Д. c. в dbeaver работает нормально. Так что это не проблема с локальным psql сервером, а также не проблема с паролем и так далее. Если посмотреть на документацию knex, это не похоже на проблему синтаксиса.

Что происходит? Как я могу это исправить?

Ответы [ 3 ]

1 голос
/ 28 апреля 2020

Из ошибки видно, что вы пытаетесь найти имя хоста с именем knex и время ожидания DNS. Проверьте свою проводку. Что-то не настроено так, как вы думаете.

Также проверьте трассировку стека, откуда именно эта ошибка.

0 голосов
/ 28 апреля 2020

По моему скромному мнению, если все остальные настройки в порядке, ваш пароль / пользователь, вероятно, содержит некоторые специальные символы , которые сломали парсер URL, а затем knex пытается подключиться к некоторому несуществующему URL.

Вы должны попробовать с другим пользователем или изменить пароль пользователя на что-то без специальных символов. Вы можете увидеть этот связанный вопрос

Это объясняет даже, почему ваше соединение, использующее объект конфигурации, работает, но не с URI.

0 голосов
/ 28 апреля 2020

Когда Микаэль сказал, что хост, пытающийся подключиться, был "knex", а не "localhost", я попытался поместить переменную в качестве объекта.

const knexConnection = knex({
    client: 'pg',
    connection: {host:host, user:user, password:password, database:database, port:port},
})

и с теми же значениями, это сработало , Итак, я не уверен, почему URL не работал. Надеюсь, это был просто несчастный случай, и это не произойдет с моим настоящим postgresql сервером.

...