【问题标题】:Graph QL Apollo Server throwing INTERNAL_SERVER_ERROR. Can't find source of errorGraphql Apollo 服务器抛出 INTERNAL_SERVER_ERROR。找不到错误来源
【发布时间】:2021-03-18 07:11:57
【问题描述】:

这是我尝试运行任何查询时从查询游乐场返回的错误。

我真的不知道这个错误是从哪里产生的,因为从堆栈跟踪来看,它看起来像是在 apollo 内部深处。

{
  "error": {
    "errors": [
      {
        "message": "Cannot convert undefined or null to object",
        "extensions": {
          "code": "INTERNAL_SERVER_ERROR",
          "exception": {
            "stacktrace": [
              "TypeError: Cannot convert undefined or null to object",
              "    at Function.values (<anonymous>)",
              "    at C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:343:53",
              "    at Generator.next (<anonymous>)",
              "    at C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:8:71",
              "    at new Promise (<anonymous>)",
              "    at __awaiter (C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:4:12)",
              "    at initializeDataSources (C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:338:20)",
              "    at Object.<anonymous> (C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:41:15)",
              "    at Generator.next (<anonymous>)",
              "    at C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:8:71",
              "    at new Promise (<anonymous>)",
              "    at __awaiter (C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:4:12)",
              "    at Object.processGraphQLRequest (C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\requestPipeline.js:34:12)",
              "    at C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\runHttpQuery.js:164:62",
              "    at Generator.next (<anonymous>)",
              "    at C:\\Users\\ccrow\\Documents\\Repositories\\fullstack-boilerplate\\node_modules\\apollo-server-core\\dist\\runHttpQuery.js:8:71"
            ]
          }
        }
      }
    ]
  }
}

这是我的项目仓库的链接:project repo

这里是启动 apollo-server 和 express 应用程序的服务器索引文件的链接:index.js

【问题讨论】:

  • 在返回前在解析器中记录数据? .... 解析器中缺少 async/await?
  • 修复了这个问题。只是缺少一些括号。花了几个小时才弄清楚哈哈。感谢您的回复:)

标签: express graphql apollo apollo-server mern


【解决方案1】:

解决了这个问题。

我的服务器初始化代码如下所示:

// Initialize Graph QL Apollo server
const server = new ApolloServer({ 
  typeDefs,
  resolvers,
  dataSources: () => {
    users: new Users(User)
  ), 
  context
});

我需要在 dataSources 返回类型周围加上方括号才能正确返回一个对象。 Arg... 如此烦人的语法错误。花了很长时间才找到,但也许这会帮助其他有同样问题的可怜人。

已修复

// Initialize Graph QL Apollo server
const server = new ApolloServer({ 
  typeDefs,
  resolvers,
  dataSources: () => ({
    users: new Users(User)
  )), 
  context
});

【讨论】:

    猜你喜欢
    • 2021-07-28
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2020-06-08
    • 2022-07-27
    • 2019-04-13
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多