为什么导出的模块报错定义的函数"is not a function"
Why does an exported module error report that a defined function "is not a function"
这是我定义函数并使用 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 is not a function"
这些不是定义函数吗?它们是否未正确导出?
你的GITHelper
class中的方法是实例方法(不是静态方法)。 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();
这是我定义函数并使用 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 is not a function"
这些不是定义函数吗?它们是否未正确导出?
你的GITHelper
class中的方法是实例方法(不是静态方法)。 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();