为什么导出的模块错误报告定义的函数“不是函数”

这是我定义函数并使用 module.exports 导出它们的地方


class GITHelper extends Helper {


addLatestReport(){

  simpleGitPromise.addRemote(date,remote);

    return simpleGitPromise.add('.')

      .then(

          (addSuccess) => {

            console.log(addSuccess);

          }, (failedAdd) => {

            console.log('adding files failed');

      });

}


commitLatestReport(){

  console.log("Committing...");

  return simpleGit.commit("Latest output from Automated UI Testing", "./output");

}


pushLatestReport() {

    console.log('Pushing...');

    return simpleGit.push(remote);

}


}


module.exports = GITHelper;

我需要在另一个节点依赖文件(mochawesome)中使用这个模块


var gitHelper = require('../../../helpers/GITHelper.js');

然后我像这样调用函数:


async function gitSender()

{

 await gitHelper.addLatestReport();

 await gitHelper.commitLatestReport();

 await gitHelper.pushlatestReport();

 console.log("Upload completed");

}

“类型错误:gitHelper.addLatestReport 不是函数”


这些不是定义的函数吗?它们没有被正确导出吗?


30秒到达战场
浏览 176回答 1
1回答

临摹微笑

在你的方法GITHelper类的实例方法(而不是静态方法)。addLatestReport, commitLatestReport,pushLatestReport在GITHelper.prototype. 所以方法从实例 ( const gitHelper = new GitHelper; gitHelper.addLatestReport();)变得有意义。尝试创建一个实例GitHelper来使用这些方法const GitHelper = require('../../../helpers/GITHelper.js');const gitHelper = new GitHelper();async function gitSender(){ await gitHelper.addLatestReport(); await gitHelper.commitLatestReport(); await gitHelper.pushlatestReport(); console.log("Upload completed");}另一种选择是制作静态方法。如果方法不使用this关键字,则方法可以是静态的。class ConsoleExample {   static sayHello() {      console.log('hello')   }}ConsoleExample.sayHello();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript