【问题标题】:Serverless-offline does not recognize graphql handler as a functionServerless-offline 无法将 graphql 处理程序识别为函数
【发布时间】:2020-04-29 11:57:13
【问题描述】:

我正在尝试将我的无服务器 nodejs graphql api 转换为使用 typescript,但无服务器抛出一个错误,指出 graphql 处理程序不是函数。

错误信息:

Error: Serverless-offline: handler for 'hello' is not a function
    at Object.createHandler (/home/savnik/serverless-webpack-typescript-apollo/node_modules/serverless-offline/src/functionHelper.js:221:11)
    at handler (/home/savnik/serverless-webpack-typescript-apollo/node_modules/serverless-offline/src/ApiGateway.js:485:40)
    at module.exports.internals.Manager.execute (/home/savnik/serverless-webpack-typescript-apollo/node_modules/@hapi/hapi/lib/toolkit.js:41:33)
    at Object.internals.handler (/home/savnik/serverless-webpack-typescript-apollo/node_modules/@hapi/hapi/lib/handler.js:46:48)
    at exports.execute (/home/savnik/serverless-webpack-typescript-apollo/node_modules/@hapi/hapi/lib/handler.js:31:36)
    at Request._lifecycle (/home/savnik/serverless-webpack-typescript-apollo/node_modules/@hapi/hapi/lib/request.js:312:68)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at Request._execute (/home/savnik/serverless-webpack-typescript-apollo/node_modules/@hapi/hapi/lib/request.js:221:9)

目标是创建一个使用打字稿并且可以离线用于开发目的的 apollo graphql api。

我在这里重现了这个问题: https://github.com/savnik/serverless-webpack-typescript-apollo

对这个问题的根本原因有什么想法吗?

【问题讨论】:

  • 你找到答案了吗?我也有同样的问题...
  • 是的,问题是在 pd76 的评论中指出的 exports.graphqlHandler = server.createHandler(); 的问题
  • 哦,好吧..对我来说这不是问题。我正在导出一个异步函数调用,所以导出的东西不是一个函数,而是一个承诺。无论如何,谢谢!

标签: typescript webpack apollo-server serverless-offline


【解决方案1】:

这是因为您仍在为 js 模块使用“导出”语法。

在 src/handler.ts 中,将最后一行从 exports.graphqlHandler = server.createHandler() 更改为 export const graphqlHandler = server.createHandler()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-28
    • 2020-07-18
    • 1970-01-01
    • 2018-10-10
    • 2020-03-27
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多