Refactoring probot event functions into seperate file causes error: TypeError: handler is not a function

Refactoring probot event functions into seperate file causes error: TypeError: handler is not a function

我有来自 docs 的 vanilla probot 事件功能,它对新问题发表评论:

const probotApp = app => {
  app.on("issues.opened", async context => {
    const params = context.issue({ body: "Hello World!" });
    return context.github.issues.createComment(params);
  });
}

这很好用。

我将代码重构到一个单独的文件中:

index.js

const { createComment } = require("./src/event/probot.event");

const probotApp = app => {
  app.on("issues.opened", createComment);
}

probot.event.js

module.exports.createComment = async context => {
  const params = context.issue({ body: "Hello World!" });
  return context.github.issues.createComment(params);
};

但是我收到这个错误:

ERROR (event): handler is not a function
    TypeError: handler is not a function
        at C:\Users\User\probot\node_modules\@octokit\webhooks\dist-node\index.js:103:14
        at processTicksAndRejections (internal/process/task_queues.js:97:5)
        at async Promise.all (index 0)

当我使用夹具创建测试 as recommended in the docs 并使用 nock 模拟事件 webhook 调用时,这工作正常。但是当我在 GitHub 上创建一个真正的问题时,会抛出这个错误。

如何将代码重构到单独的文件中而不导致错误?

这是我的错误。

这是整个 probot.event.js 文件:

module.exports.createComment = async context => {
  const params = context.issue({ body: "Hello World!" });
  return context.github.issues.createComment(params);
};


module.exports = app => {
  // some other event definitions
}

通过定义module.exports = app我覆盖了之前的module.export。因此,createComment 函数从未被导出。

删除 module.exports = app = { ... } 修复了它!