程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了连接 ECONNREFUSED,阿波罗联盟大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决连接 ECONNREFUSED,阿波罗联盟?

开发过程中遇到连接 ECONNREFUSED,阿波罗联盟的问题如何解决?下面主要结合日常开发的经验,给出你关于连接 ECONNREFUSED,阿波罗联盟的解决方法建议,希望对你解决连接 ECONNREFUSED,阿波罗联盟有所启发或帮助;

我决定通过他们网站上的例子来研究阿波罗联盟。我尝试在联合下合并三个服务,但我发现了这个错误:

检查服务定义更改时出错:无法在 http://localhost:4001 加载“帐户”的服务定义:请求 http://localhost:4001/ 失败,原因:连接 ECONNREFUSED 127.0 .0.1:4001 此数据图缺少有效配置。无法在 http://localhost:4001 加载“帐户”的服务定义:请求 http://localhost:4001/ 失败,原因:connect ECONNREFUSED 127.0.0.1:4001

服务代码和阿波罗网关:

帐户

const { ApolloServer,gql } = require('apollo-server');
const { buildFederatedscheR_345_11845@a } = require('@apollo/federation');

const typeDefs = gql`
  extend type query {
    me: User
  }

  type User @key(fIElds: "ID") {
    ID: ID!
    username: String
  }
`;

const resolvers = {
  query: {
    me() {
      return { ID: "1",username: "@ava" }
    }
  },User: {
    __resolveReference(user,{ fetchUserByID }){
      return fetchUserByID(user.ID)
    }
  }
}

const server = new ApolloServer({
  scheR_345_11845@a: buildFederatedscheR_345_11845@a([{ typeDefs,resolvers }]),introspection: true
});

server.Listen(4001).then(({ url }) => {
    console.log(`? Server ready at ${url}`);
});

产品

const { ApolloServer,gql } = require('apollo-server');
const { buildFederatedscheR_345_11845@a } = require('@apollo/federation');

const typeDefs = gql`
  extend type query {
  topProducts: Product
}

type Product @key(fIElds: "upc") {
  upc: String!
  name: String!
  price: Int
}
`;

const resolvers = {
  query: {
    topProducts() {
      return { upc: "one",name: "Computer",price: "3000" }
    }
  },Product: {
    __resolveReference(Product,{ fetchProductByupc }){
      return fetchProductByupc(Product.upC)
    }
  }
}

const server = new ApolloServer({
  scheR_345_11845@a: buildFederatedscheR_345_11845@a([{ typeDefs,introspection: true
});

server.Listen(4002).then(({ url }) => {
    console.log(`? Server ready at ${url}`);
});

评论

const { ApolloServer,gql } = require('apollo-server');
const { buildFederatedscheR_345_11845@a } = require('@apollo/federation');

const typeDefs = gql`
type RevIEw {
  body: String
  author: User @provIDes(fIElds: "username")
  product: Product
}

extend type User @key(fIElds: "ID") {
  ID: ID! @external
  revIEws: [RevIEw]
}

extend type Product @key(fIElds: "upc") {
  upc: String! @external
  revIEws: [RevIEw]
}
`;

const resolvers = {
  RevIEw: {
    body() {
      return { body: "Very good",author,product }
    }
  },User: {
    __resolveReference(body,{ fetchUserByauthor }){
      return fetchUserByauthor(body.author)
    }
  }
}

const server = new ApolloServer({
  scheR_345_11845@a: buildFederatedscheR_345_11845@a([{ typeDefs,introspection: true
});

server.Listen(4003).then(({ url }) => {
    console.log(`? Server ready at ${url}`);
});

阿波罗网关

const { ApolloServer} = require('apollo-server');
const { ApolloGateway} = require('@apollo/gateway');
const gateway = new ApolloGateway({
  serviceList: [
    { name: 'accounts',url: 'http://localhost:4001' },{ name: 'products',url: 'http://localhost:4002' },{ name: 'revIEws',url: 'http://localhost:4003' }
  ]
});

const server = new ApolloServer({ gateway,subscriptions: false });
server.Listen(4004).then(({ url }) => {
    console.log(`? Server ready at ${url}`);
});

解决方法

尝试使用等待的 npm 包。它将允许您在运行网关服务器之前等待特定资源。见示例:

explode

大佬总结

以上是大佬教程为你收集整理的连接 ECONNREFUSED,阿波罗联盟全部内容,希望文章能够帮你解决连接 ECONNREFUSED,阿波罗联盟所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:连接