我有一个基本的迁移类,如下所示:
"use strict";
var Schema = require('../database/schema');
var sequence = require('when/sequence');
var _ = require('lodash');
class Migrate {
constructor(knex) {
this.knex = knex;
}
createTable(tableName) {
...
}
createTables() {
...
}
run() {
return this.createTables();
}
}
module.exports = (knex) => {
return new Migrate(knex)
}
我可以像这样使用它:
require('./app/commands/' + process.argv[2] + '.js')(knex)
.run()
.then((...))
但是,我想继承一个名为“Command”的抽象类,所以我将以下几行添加到我的“Migrate”类中。
"use strict";
var Command = require('./command');
class Migrate extends Command {
...
}
问题是,我不知道如何将Command类转换为模块。现在就是这样:
"use strict";
module.exports = class Command {
sayHello() {
console.log("hello");
}
}
但它不起作用。 (例如,这在Migrate类的构造函数方法中未定义,因此我无法将Knex放到实例中)
有没有正确的方法来使用带有模块模式的抽象类?
谢谢。