Apolloserver中创建的类是否被视为单例?
创始人
2024-09-09 13:01:15
0

Apollo server 中创建的类默认被视为单例,因为它们可以用来共享状态和数据。以下是一个简单的示例:

const { ApolloServer, gql } = require('apollo-server');

class MyClass {
  constructor() {
    this.count = 0;
  }

  increment() {
    this.count++;
  }

  getCount() {
    return this.count;
  }
}

const typeDefs = gql`
  type Query {
    getCount: Int
  }

  type Mutation {
    incrementCount: Int
  }
`;

const resolvers = {
  Query: {
    getCount: (_, __, context) => context.myClass.getCount(),
  },
  Mutation: {
    incrementCount: (_, __, context) => {
      context.myClass.increment();
      return context.myClass.getCount();
    },
  },
};

const server = new ApolloServer({
  typeDefs,
  resolvers,
  context: () => {
    const myClass = new MyClass();
    return { myClass };
  },
});

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

在这个示例中,我们创建了一个名为 MyClass 的类,并在 context 中将其传递给 resolver。在 QueryMutation resolver 中,我们可以访问 MyClass 的实例并使用类的方法来操作状态。

由于 MyClasscontext 中只创建了一次,所以它被视为单例并且可以在整个应用程序中共享。

相关内容

热门资讯

4分钟了解!pokemmo手机... 4分钟了解!pokemmo手机版修改器!原来一直总是有辅助技巧(的确有挂)-哔哩哔哩1、全新机制【p...
一分钟了解!樱花之盛辅助软件下... 一分钟了解!樱花之盛辅助软件下载!竟然真的有辅助app(有挂工具)-哔哩哔哩樱花之盛辅助软件下载破解...
6分钟了解!福建兄弟13水修改... 6分钟了解!福建兄弟13水修改器!一直是有辅助软件(有挂技术)-哔哩哔哩1)福建兄弟13水修改器免费...
第9分钟了解!顺欣茶坊智能辅助... 第9分钟了解!顺欣茶坊智能辅助器使用说明书!一贯一直总是有辅助软件(有挂解惑)-哔哩哔哩1、打开软件...
6分钟了解!四川游戏家园辅助软... 6分钟了解!四川游戏家园辅助软件!都是真的有辅助教程(有挂辅助)-哔哩哔哩;1、金币登录送、破产送、...
5分钟了解!约局吧脚本有用码!... 5分钟了解!约局吧脚本有用码!一直真的有辅助app(有挂方法)-哔哩哔哩运约局吧脚本有用码辅助工具,...
六分钟了解!八仙竞技馆辅助!一... 六分钟了解!八仙竞技馆辅助!一直一直总是有辅助技巧(有挂技术)-哔哩哔哩八仙竞技馆辅助辅助器是一种具...
第三分钟了解!途游四川辅助器小... 第三分钟了解!途游四川辅助器小程序!切实有辅助app(确实有挂)-哔哩哔哩该软件可以轻松地帮助玩家将...
2分钟了解!贰柒拾智能辅助柒!... 2分钟了解!贰柒拾智能辅助柒!切实真的是有辅助神器(有挂工具)-哔哩哔哩1、操作简单,无需贰柒拾智能...
第7分钟了解!乐酷副厅房间科技... 第7分钟了解!乐酷副厅房间科技!果然有辅助app(有挂规律)-哔哩哔哩1、操作简单,无需乐酷副厅房间...