Prisma绑定无法连接到prisma服务器。请求到http:// localhost:4466 /失败,原因:连接ECONNREFUSED 127.0.0.1:4466

Dha*_*aki 0 node.js graphql graphql-js prisma prisma-graphql

我正在运行两个单独的docker服务。一个用于我的GraphQL服务器,另一个用于棱镜服务,该服务连接到本地Postgres数据库。我能够运行Arizona部署并直接在中进行测试http://localhost:4466。但是,当我尝试使用中的应用程序的GraphQL服务器进行查询时http://localhost:8080,它将给出以下响应。

{
  "data": null,
  "errors": [
    {
      "message": "request to http://localhost:4466/ failed, reason: connect ECONNREFUSED 127.0.0.1:4466",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "feed"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪。

graphql-server_1  | [Network error]: FetchError: request to http://localhost:4466/ failed, reason: connect ECONNREFUSED 127.0.0.1:4466
graphql-server_1  | Error: request to http://localhost:4466/ failed, reason: connect ECONNREFUSED 127.0.0.1:4466
graphql-server_1  |     at new CombinedError (/usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/stitching/errors.js:83:28)
graphql-server_1  |     at Object.checkResultAndHandleErrors (/usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/stitching/errors.js:101:15)
graphql-server_1  |     at CheckResultAndHandleErrors.transformResult (/usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/transforms/CheckResultAndHandleErrors.js:10:25)
graphql-server_1  |     at /usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/transforms/transforms.js:19:54
graphql-server_1  |     at Array.reduce (<anonymous>)
graphql-server_1  |     at applyResultTransforms (/usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/transforms/transforms.js:18:23)
graphql-server_1  |     at /usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/stitching/delegateToSchema.js:82:50
graphql-server_1  |     at step (/usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/stitching/delegateToSchema.js:32:23)
graphql-server_1  |     at Object.next (/usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/stitching/delegateToSchema.js:13:53)
graphql-server_1  |     at fulfilled (/usr/src/app/node_modules/graphql-binding/node_modules/graphql-tools/dist/stitching/delegateToSchema.js:4:58)
Run Code Online (Sandbox Code Playgroud)

这就是我创建绑定的方式

const server = new GraphQLServer({
  typeDefs: './src/schema.graphql',
  resolvers,
  context: req => ({
    ...req,
    db: new Prisma({
      typeDefs: './src/generated/prisma.graphql',
      endpoint: 'http://localhost:4466',
      secret: 'my-secret',
      debug: true,
    })
  })
});
Run Code Online (Sandbox Code Playgroud)

我不确定是什么问题。

完整的代码可以在这里找到:https : //github.com/dhanushuUzumaki/Journal/tree/feature/setup

Dha*_*aki 5

得到了prisma论坛的帮助以解决此问题。

在容器中使用localhost指向容器本身,而不是容器运行所在的主机。因此,为了连接到Prisma实例,您必须使用内部服务名称,该名称解析为相应的Prisma容器。

...
    db: new Prisma({
      typeDefs: './src/generated/prisma.graphql',
      endpoint: 'http://prisma:4466',
      secret: 'my-secret',
      debug: true,
    })
...
Run Code Online (Sandbox Code Playgroud)

Prisma论坛-ECONNREFUSED-无法通过绑定连接至pyramida服务