首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knex连接问题?EAI_AGAIN

Knex连接问题?EAI_AGAIN
EN

Stack Overflow用户
提问于 2020-04-28 06:22:53
回答 3查看 354关注 0票数 0

无论我做什么,当我运行knex时,我总是得到这个错误。

代码语言:javascript
复制
"errno": "EAI_AGAIN",
"code": "EAI_AGAIN",
"syscall": "getaddrinfo",
"hostname": "knex",
"host": "knex",
"port": 3

我连接到localhost,我确信我做的每件事都是正确的。当我最后一次打开这个项目时,这个设置确实起作用了。我甚至确认我使用的是正确的npm和node版本。

代码语言:javascript
复制
const knexConnection = knex({
    client: 'pg',
    connection: "postgres://user:password@localhost:5432/db-name",
})

在dbeaver中输入用户名、密码等可以很好地工作。所以这不是本地psql服务器的问题,也不是密码之类的问题。再看一下knex文档,这似乎不是一个语法问题。

到底怎么回事?我该如何解决这个问题呢?

EN

回答 3

Stack Overflow用户

发布于 2020-04-28 16:22:40

从错误中可以看到,您正在尝试查找名为knex的主机名和DNS超时。检查你的线路。有些东西并不是按照你想象的方式配置的。

还要检查堆栈跟踪错误的确切来源。

票数 1
EN

Stack Overflow用户

发布于 2020-04-29 01:09:45

当Mikael说尝试连接的主机是"knex“而不是"localhost”时,我尝试将变量作为对象放入。

代码语言:javascript
复制
const knexConnection = knex({
    client: 'pg',
    connection: {host:host, user:user, password:password, database:database, port:port},
})

在相同的价值观下,它是有效的。所以,我不确定为什么URL one不能工作。希望这只是个意外,不会发生在我实际的postgresql服务器上。

票数 0
EN

Stack Overflow用户

发布于 2020-04-29 01:16:23

在我看来,考虑到其他设置都是可以的,你的密码/用户可能包含一些特殊字符,它破坏了网址解析器,然后knex试图连接到一些不存在的网址。

您应该尝试使用其他用户,或者将用户密码更改为不含特殊字符的密码。您可以看到这个related question

这甚至可以解释为什么使用配置对象的连接可以工作,而不能使用URI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61469458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档