Итак, у меня были проблемы в последнее время.С помощью расширенного модуля Map, который называется Enmap
, я могу загружать в него модули, получать доступ и использовать записи.
Модули, которые я загружаю:
export const name = 'foo';
export const run = async (bar, baz) => {
};
И вот как они отображаются, когда я регистрирую его на консоли:
[Module] {
name: 'foo',
run: [AsyncFunction: run]
}
Теперь вот как яЯ извлекаю и загружаю их в enmap:
// Loading them in main.js
import Enmap from 'enmap';
import { readdirSync } from 'fs';
const myEnmap = new Enmap();
const files = readdirSync('./folder/');
// No await in a .forEach() function
for (let i = 0; i < files.length; i++){
const file = await import(`./folder/${files[i]}`);
myEnmap.set(file.name, file);
}
// Retrieving in otherFile.js
// Let's assume I have it imported here as well
const input = userInputHere;
const entry = myEnmap.get(input);
// Check to see if the user input is a name of one of the modules,
// and if not, doing nothing
if(!entry) return;
entry.run(bar, baz);
Это когда я получаю сообщение об ошибке, утверждая, что entry.run
не является функцией предположительно.Это должно быть функцией, но я не уверен, почему это произойдет.