【问题标题】:Get model from context vs Import - apollo server express & mongoose从上下文中获取模型与导入 - apollo server express & mongoose
【发布时间】:2020-11-08 03:13:47
【问题描述】:

我想知道是否有区别,或者apollo-server 通过mongoose 查询mongodb 的最佳做法是什么

从上下文中获取模型:

import User from './User'

const apolloServer = new ApolloServer({
    typeDefs,
    resolvers,
    context: ({ req, res }) => ({
      req,
      res,
      User,
    }),
getUser(parent, args, context, info) {
    return context.User.findOne({ _id: args.id})
  },

VS

import User from './User'

getUser(parent, args, context, info) {
    return User.findOne({ _id: args.id})
  },

【问题讨论】:

    标签: mongoose graphql apollo-server


    【解决方案1】:

    无论您使用什么 ORM 或查询构建器,通过上下文将依赖项注入解析器都会更好。

    1. 易于测试。我们可以为User 创建模拟对象并轻松使用它。遵循依赖倒置原则。

    2. 如果您有多个解析器,则无需为每个解析器导入User。只需在初始化上下文的文件中导入一次。 用于初始化上下文的模块在一个文件中管理,而不是分散在各处

    3. 某些模块可能只需要初始化一次并将实例传递给上下文。

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 2021-02-05
      • 2019-02-13
      • 2022-07-11
      • 2019-01-21
      • 2021-04-24
      • 2023-02-03
      • 2021-10-22
      相关资源
      最近更新 更多