Почему экспортированный модуль сообщает об ошибке, что определенная функция "не является функцией" - PullRequest
0 голосов
/ 25 сентября 2019

Здесь я определяю свои функции и экспортирую их с помощью 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");
}

"TypeError: gitHelper.addLatestReport не является функцией"

Это не определенные функции?Они не экспортируются правильно?

1 Ответ

2 голосов
/ 25 сентября 2019

Методы в вашем классе 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...