首页 > 解决方案 > 如何使用 require() 获取名称未知的类

问题描述

我有一个名为的模板类文件

./templates/Class.js

class Template {
//code
}

然后我有另一个类叫做:

./classes/Foo.js

const Template = require('./../../templates/Class.js')
class Foo extends Template {
//code
}

我有一个名为: 的主文件./index.js,它检查下的所有文件./classes/,并检查它是否是

classname instanceof Template;

因此,我无法跟踪 下的所有类名./classes/,并且我想要求下的所有文件./classes/,检查从我的类扩展的每个文件的任何类Template,并将该类/函数添加到映射中。我知道如何要求所有文件,./classes/但之后不多,那我该怎么做?

我如何需要文件: index.js

const getAllFiles = function(dirPath, arrayOfFiles) {
  files = fs.readdirSync(dirPath)

  arrayOfFiles = arrayOfFiles || []

  files.forEach(function(file) {
    if (fs.statSync(dirPath + "/" + file).isDirectory()) {
      arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles)
    } else {
      if(fs.readdirSync(dirPath).filter(file => file.endsWith('.js') && fs.statSync(dirPath + "/" + file).isFile()).length) {
      arrayOfFiles.push(dirPath + "/" + file)
      }
    }
  })

  return arrayOfFiles;
};

标签: javascriptclass

解决方案


推荐阅读