You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用Octokit调用GitHub API报错:Octokit不是构造函数怎么办

解决"TypeError: Octokit is not a constructor"问题

错误原因

你遇到的问题是Octokit包的导入方式不正确。当前官方维护的Octokit包(如@octokit/core或@octokit/rest)并非默认导出构造函数,而是通过命名导出提供Octokit类,直接使用require("octokit")无法获取到可用的构造函数。

解决方案

1. 安装正确的Octokit包

先卸载可能存在的旧版废弃包,安装官方维护的版本:

npm uninstall octokit
# 安装轻量核心库
npm install @octokit/core
# 或安装包含完整REST API封装的版本
npm install @octokit/rest

2. 修正导入语句

根据安装的包,替换原导入代码:

  • 使用@octokit/core时:
const { Octokit } = require("@octokit/core");
  • 使用@octokit/rest时:
const { Octokit } = require("@octokit/rest");

3. 简化冗余的Promise嵌套

你的代码存在不必要的new Promise嵌套(async函数本身已返回Promise),简化后代码更易读:

const { Octokit } = require("@octokit/core");

async function fileFetch() {
  try {
    const octokit = new Octokit({
      auth: "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", // 注意:生产环境不要硬编码token,改用环境变量
    });
    const response = await octokit.request(
      `GET /repos/HexaInnovLab/Rapidx_Documentation/contents/website/docusaurus.config.js?ref=master`
    );
    console.log(response);
    return "success";
  } catch (error) {
    console.log(error);
    return "error";
  }
}

fileFetch();

额外提示

  • 不要在代码中硬编码GitHub个人访问令牌,建议用环境变量(如process.env.GITHUB_TOKEN)存储敏感信息,避免泄露风险。

内容的提问来源于stack exchange,提问作者user19672461

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:05:19