Javascript Can';t安装discord.js/can';找不到模块discord.js

Javascript Can';t安装discord.js/can';找不到模块discord.js,javascript,node.js,npm,discord.js,Javascript,Node.js,Npm,Discord.js,我试图通过运行npm install Discord.JS来安装Discord.JS,它看起来可以工作,但不能 我在运行index.js文件时遇到这个错误,但它给出了一个错误,指出未找到discord.js。因此,我尝试再次安装它: PS G:\My Drive\coding\node.js\bot>npm安装https://github.com/discordjs/discord.js.git npm通知创建了一个锁文件,名为package-lock.json。你应该提交这个文件。 npm警告

我试图通过运行
npm install Discord.JS
来安装Discord.JS,它看起来可以工作,但不能

我在运行
index.js
文件时遇到这个错误,但它给出了一个错误,指出未找到
discord.js
。因此,我尝试再次安装它:

PS G:\My Drive\coding\node.js\bot>npm安装https://github.com/discordjs/discord.js.git
npm通知创建了一个锁文件,名为package-lock.json。你应该提交这个文件。
npm警告bot@0.0.1没有存储库字段。
+不和。js@12.0.2
在97.377s中添加了来自17个贡献者的15个包,并审核了15个包
发现0个漏洞
然后我运行
index.js
文件:

const Discord=require('Discord.js');
const bot=new Discord.Client();
const botCommands=require('./commands');
const{prefix,token}=require('./cfg.json');
bot.login(令牌);
bot.on('ready',()=>{
console.info(`Logged as${bot.user.tag}!`);
});
这是控制台中显示的结果:

PS G:\My Drive\coding\node.js\bot>node。
内部/modules/cjs/loader.js:796
犯错误;
^
错误:找不到模块'./命令'
需要堆栈:
-G:\My Drive\coding\node.js\bot\index.js
在Function.Module.\u解析文件名(internal/modules/cjs/loader.js:793:17)
at Function.Module._load(内部/modules/cjs/loader.js:686:27)
at Module.require(内部/modules/cjs/loader.js:848:19)
根据需要(internal/modules/cjs/helpers.js:74:18)
反对。(G:\My Drive\coding\node.js\bot\index.js:3:21)
at模块编译(内部/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:991:10)
在Module.load(内部/modules/cjs/loader.js:811:32)
at Function.Module._load(内部/modules/cjs/loader.js:723:14)
位于Function.Module.runMain(internal/modules/cjs/loader.js:1043:10){
代码:“未找到模块”,
requireStack:['G:\\My Drive\\coding\\node.js\\bot\\index.js']
}
旁注:在运行
index.js
之前,我运行了
npminit-y
来创建一个包


注:如果你找不到/commands文件夹,英语不是我的第一语言-你确定它在那里吗确保它位于文件夹
'G:\My Drive\coding\node.js\bot\'

如果您无法找到/commands文件夹,请告诉我您是否成功

-您确定它在那里吗?-确保它位于文件夹
'G:\My Drive\coding\node.js\bot\'

如果您成功了,请告诉我错误在您的第三行,您需要这些命令

如果您有命令文件夹,请执行此操作

fs.readdirSync('../commands').filter(file=>file.endsWith('.js'));

错误在您的第三行,您需要这些命令

如果您有命令文件夹,请执行此操作

fs.readdirSync('../commands').filter(file=>file.endsWith('.js'));

好的。首先,它说没有找到模块“/commands”,discord.js确实存在

原因是,您正在尝试导入文件夹。Node.js不是这样工作的

您必须删除带有require(“./commands”)的行,并将其替换为以下内容:

var botCommands=fs.readdirSync('./commands/');
这将返回该目录中的文件名数组


然后,继续做你正在做的事情。

好的。首先,它说没有找到模块“/commands”,discord.js确实存在

原因是,您正在尝试导入文件夹。Node.js不是这样工作的

您必须删除带有require(“./commands”)的行,并将其替换为以下内容:

var botCommands=fs.readdirSync('./commands/');
这将返回该目录中的文件名数组


然后,继续做你正在做的事情。

我认为你想要的是

bot.on('message', message => {

  if(message.content.startsWith(prefix)) {
     let rawA = message.content.slice(prefix.length).split(' ');
     let cmd = rawA[0];
     let rawB = rawA.join(' ');
     let args = rawB.slice(cmd.length).split(' ');
  
     let cmdFile = require(`./commands/${cmd}.js`);
     cmdFile.run(bot, message, args);
  }
}
但如果使用此命令,则需要在命令文件中使用此命令:

exports.run = async (bot, message, args) => {
   //code
}

我想你想要的是

bot.on('message', message => {

  if(message.content.startsWith(prefix)) {
     let rawA = message.content.slice(prefix.length).split(' ');
     let cmd = rawA[0];
     let rawB = rawA.join(' ');
     let args = rawB.slice(cmd.length).split(' ');
  
     let cmdFile = require(`./commands/${cmd}.js`);
     cmdFile.run(bot, message, args);
  }
}
但如果使用此命令,则需要在命令文件中使用此命令:

exports.run = async (bot, message, args) => {
   //code
}

错误:找不到模块“./commands”
是的,我的坏。真的很抱歉。我认为第一次安装discord.js失败,我多次运行该文件,结果不同,我没有注意到。案件结案。Thx.
错误:找不到模块“./commands”
是我的错。真的很抱歉。我认为第一次安装discord.js失败,我多次运行该文件,结果不同,我没有注意到。案件结案。Thx.它搜索的不是commands文件夹。当需要一个没有扩展名的文件时,node会自动将
.js
附加到它,因此它实际上是在搜索
commands.js
。我没有编写代码。我只是说他写的代码是做什么的。实际上,哈哈,首先,谢谢。但问题早已解决。实际上问题是,我认为它在访问discord.js时遇到了问题。现在已经结案了。下一个问题我也解决了。它只是
fs.readdirSync('./commands').filter(file=>file.endsWith('.js'))并且,它运行良好。整个问题已结案。问这个问题只是我的愚蠢。它搜索的不是commands文件夹。当需要一个没有扩展名的文件时,node会自动将
.js
附加到它,因此它实际上是在搜索
commands.js
。我没有编写代码。我只是说他写的代码是做什么的。实际上,哈哈,首先,谢谢。但问题早已解决。实际上问题是,我认为它在访问discord.js时遇到了问题。现在已经结案了。下一个问题我也解决了。它只是
fs.readdirSync('./commands').filter(file=>file.endsWith('.js'))并且,它运行良好。整个问题已结案。问这个问题只是我的愚蠢。