[英]How to iterate through a folder in JavaScript?
我正在尝试遍历命令文件的文件夹,为 discord bot 创建帮助命令。 到目前为止,这是我的代码。
module.exports = {
name: 'help',
description: 'Lists current commands.',
execute(message) {
//was the first time i made something interesting out of a for loop
if (message.content.toLowerCase() === '$help') {
const commands = 'C:/Bot/commands';
const Discord = require('discord.js');
const helpEmbed = new Discord.MessageEmbed()
.setTitle("Commands")
.setColor(0x6e7175)
.setFooter('Provided by Echo', 'https://cdn.discordapp.com/avatars/748282903997186178/6288e1f487e111b211aa9966c583d948.png?size=128')
.setTimestamp()
for (i of commands) {
let title = i.name
let value = i.description
helpEmbed.addField(title, value)
}
message.channel.send(helpEmbed)
}
}
}
C:/Bot/commands 是存储所有命令的文件夹,此时 i.name 和 i.description 未定义。 这里有什么问题?
C:/Bot/commands
是存储C:/Bot/commands
的文件夹,但字符串 'C:/Bot/commands' 不是文件夹 - 它是一个字符串。
要遍历文件夹,您需要通过fs.readdir或同步版本读取它
commands
目前只是一个字符串。 如果要获取文件夹中所有文件的数组,请使用fs
。
const fs = require('fs'); // node.js built in module
const files = fs.readdierSync('../commands'); // get the names of all files in the foler
for (file of files) {
// now you can require the file
const { name, description } = require(`../commands/${file}`);
embed.addField(name, description);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.