javascript - 节点或我的代码有问题,正在开发一个不和谐的机器人
问题描述
我正在尝试编写自己的 Discord Bot,但遇到了一个我无法解决的错误:
internal/modules/cjs/loader.js:968
throw err;
^
Error: Cannot find module './commands/${file}'
Require stack:
- C:\Users\vatri\Desktop\DiscordBot\main.js
[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)[39m
[90m at Function.Module._load (internal/modules/cjs/loader.js:841:27)[39m
[90m at Module.require (internal/modules/cjs/loader.js:1025:19)[39m
[90m at require (internal/modules/cjs/helpers.js:72:18)[39m
at Object.<anonymous> (C:\Users\vatri\Desktop\DiscordBot\main.js:13:21)
[90m at Module._compile (internal/modules/cjs/loader.js:1137:30)[39m
[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)[39m
[90m at Module.load (internal/modules/cjs/loader.js:985:32)[39m
[90m at Function.Module._load (internal/modules/cjs/loader.js:878:14)[39m
[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)[39m {
code: [32m'MODULE_NOT_FOUND'[39m,
requireStack: [ [32m'C:\\Users\\vatri\\Desktop\\DiscordBot\\main.js'[39m ]
}
还有我的代码:
const Discord = require('discord.js');
const client = new Discord.Client();
const prefix = '-';
const fs = require('fs');
client.commands == new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for(const file of commandFiles){
const command = require('./commands/${file}');
client.commands.set(command.name, command);
}
client.once('ready', () => {
console.log('Playlist is on!');
});
client.on('message', message =>{
if(!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if(command === 'ping'){
client.commands.get('ping').execute(message, args);
} else if (command === 'hello'){
}
});
我尝试了很多解决方案,但我没有找到任何解决方案,所以它真的会帮助我
顺便说一句,对不起,如果我的英语不好,我不是 代码的英文图像
现在我收到了这个错误
`client.commands.setTo(command.name, command);
^
TypeError: Cannot read property 'setTo' of undefined
at Object.<anonymous> (C:\Users\vatri\Desktop\DiscordBot\main.js:15:21)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules
/run_main.js:71:12)
at internal/main/run_main_module.js:17:47`
解决方案
要使用模板文字,您必须将字符串包装在反引号中,而不是引号中。
改变
const command = require('./commands/${file}');
至
const command = require(`./commands/${file}`);
^ ^
推荐阅读
- reactjs - 将 handleChange 函数作为 Prop 发送到 2 个或更多组件不起作用
- c# - 类列表将多个值分配给字符串列表
- vue.js - 在 Vue 中的函数之后同步执行 $emit()
- r - 将库(rgbif)函数 occ_data 中的列表拆分为数据框
- couchdb - 返回 CouchDB 查询中未知键的默认值
- excel - 复制行并减少 ID
- python - 如何从多个 CSV 文件的字段中获取数据类型?
- javascript - 是否有 ngTemplateOutlet 的 vue.js 等价物?
- android - AndroidX下如何使用FirebaseRecyclerAdapter?
- python - 数据类子类不继承 __repr__