Node.js 故障排除';无法读取属性,未定义';错误
我有这个功能Node.js 故障排除';无法读取属性,未定义';错误,node.js,typescript,octokit-js,Node.js,Typescript,Octokit Js,我有这个功能 函数getAvailableProviders(tmpDir、snips、processRepo){ 常量octokit=require(“@octokit/rest”); octokit.repos.listForOrg( {org:“地形提供者”,键入:“公共”,每页100}, (错误、结果)=>{ result.data.forEach((元素)=>{ processRepo(tmpDir、element.name、snips、iterateOnDocFiles); });
函数getAvailableProviders(tmpDir、snips、processRepo){
常量octokit=require(“@octokit/rest”);
octokit.repos.listForOrg(
{org:“地形提供者”,键入:“公共”,每页100},
(错误、结果)=>{
result.data.forEach((元素)=>{
processRepo(tmpDir、element.name、snips、iterateOnDocFiles);
});
},
);
}
当我运行我的程序时,我从typescript编译器中得到这个错误
(node:15713) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'listForOrg' of undefined
问题在于,根据octokit文档,定义了repos.listForOrg
我只是在尝试学习(typescript和node),同时重新创建一些被原始devleoper放弃的东西。根据octokit文档,我有我的需求声明。它没有接触到api。我还需要在我的节点项目中安装其他东西才能正常工作吗?我想你需要对你的
require
稍作修改,并添加const octokit=new octokit()代码>在require之后(插入示例中的第3行):
函数getAvailableProviders(tmpDir、snips、processRepo){
const{Octokit}=require('@Octokit/rest');//{
processRepo(tmpDir、element.name、snips、iterateOnDocFiles);
});
},
);
}
请参见我认为您需要对require
稍作修改,并添加const octokit=new octokit()代码>在require之后(插入示例中的第3行):
函数getAvailableProviders(tmpDir、snips、processRepo){
const{Octokit}=require('@Octokit/rest');//{
processRepo(tmpDir、element.name、snips、iterateOnDocFiles);
});
},
);
}
请参见您是否查看了使用说明文件:?看起来您需要解构Octokit
:const{Octokit}=require(@Octokit/rest))代码>。然后用正确的配置设置它,它的返回值就是exposesrepos.listForOrg
。这不是我对第2行所做的吗?为了它的价值,我重写了与文档中相同的行,上面列出了相同的错误。你看过使用文档了吗?看起来您需要解构Octokit
:const{Octokit}=require(@Octokit/rest))代码>。然后用正确的配置设置它,它的返回值就是exposesrepos.listForOrg
。这不是我对第2行所做的吗?为了它的价值,我重写了与文档中相同的行,上面列出了相同的错误。
function getAvailableProviders(tmpDir, snips, processRepo) {
const { Octokit } = require('@octokit/rest'); // <-- change this line
const octokit = new Octokit(); // <-- add this line
octokit.repos.listForOrg(
{ org: "terraform-providers", type: "public", per_page: 100 },
(error, result) => {
result.data.forEach((element) => {
processRepo(tmpDir, element.name, snips, iterateOnDocFiles);
});
},
);
}