【发布时间】:2020-07-01 12:47:57
【问题描述】:
所以,我最近遇到了一个问题!
我试图为变量值分配一个值(我知道有点混乱)。我试图为我的 Discord 机器人创建一个库系统,它使用 JavaScript (Node.js)!
所以,这是我正在努力解决的部分代码:
flist.forEach(item1 => {
liblist.forEach(item => {
eval(item1 = require(item));
});
});
好的,所以基本上必须将item1 替换为库文件的名称(如果文件名为cmdh,我将其用作变量名以将require(item) 分配给它)
编辑:顺便说一下,item1 是文件名。
编辑2:这是文件util.js的一部分:
const Discord = require("discord.js");
const fs = require("fs");
function genEmbed(title, desc, col) {
return new Discord.MessageEmbed().setTitle(title).setDescription(desc).setColor(col);
};
function log(inp) {
console.log(`[UTIL] ${inp}`);
};
function loadDef() {
log("Loading libraries...");
dirlist = [];
liblist = [];
flist = [];
fs.readdir("./libraries", (err, dirs) => {
if(err) console.error(err);
dirs.forEach(dir => {
dirlist.push("./libraries/" + dir);
});
dirlist.forEach(dir => {
fs.readdir(dir, (err, files) => {
if(err) console.error(err);
files.forEach(file => {
if(file.includes(".")) {
liblist.push(require(dir + "/" + file));
filename = file.split(".")[0];
flist.push(filename);
} else {
log(`${file} is a directory, ignoring...`)
};
});
});
});
});
flist.forEach(item1 => {
liblist.forEach(item => {
eval(item1 = require(item));
});
});
log("Libraries loaded!");
};
module.exports = {
genEmbed,
loadDef
};
【问题讨论】:
-
看来您想使用
map而不是forEach。 -
你是什么意思,tkausl?
-
附带说明,请阅读为什么不应该使用 eval:stackoverflow.com/q/86513/8186898
标签: javascript node.js bots discord