前提・実現したいこと
Discord.jsで、実行しようとしたら、エラーが出ました
発生している問題・エラーメッセージ
internal/modules/cjs/loader.js:883 throw err; ^ Error: Cannot find module '@keyv/sqlite' Require stack: - /home/kinoko/node_modules/keyv/src/index.js - /home/kinoko/renkei/kibou.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15) at Function.Module._load (internal/modules/cjs/loader.js:725:27) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at loadStore (/home/kinoko/node_modules/keyv/src/index.js:18:15) at new Keyv (/home/kinoko/node_modules/keyv/src/index.js:39:22) at Object.<anonymous> (/home/kinoko/renkei/kibou.js:5:16) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) { code: 'MODULE_NOT_FOUND', requireStack: [ '/home/kinoko/node_modules/keyv/src/index.js', '/home/kinoko/renkei/kibou.js' ] }
該当のソースコード
js
1const Discord = require("discord.js"); 2const client = new Discord.Client(); 3const prefix = "k!"; 4const Keyv = require("keyv") 5const gmutes = new Keyv("sqlite://gmutes.sqlite", {table: "gmutes"}) 6client.on("message", async message=>{ 7if(message.author.bot) return; 8const args = message.content.slice(2).trim().split(/ +/g); 9const command = args.shift().toLowerCase(); 10 if(message.channel.name == ("kibou-global")){ 11 const gmute = (await gmutes.get(message.author.id)) || { score: 0, reason: 0 } 12 if(gmute.score != 0) return; 13 message.delete(); 14 const ch_name = "kibou-global"; 15 client.channels.cache.forEach(ch => { 16 if(ch.name === ch_name){ 17 ch.send({embed: { 18 title: `${message.author.tag}(${message.author.id})`, 19 description: message.content, 20 color: 0x800080, 21 timestamp: new Date(), 22 footer: { 23 text: message.guild.name + "(" + message.guild.id + ")" 24 }, 25 thumbnail: { 26 url: `https://cdn.discordapp.com/avatars/${message.author.id}/${message.author.avatar}.png` 27 }, 28 }})}})}; 29if(command === "gmute"){ 30 if(message.author.id === "695500134179536907||663196515384295425") return message.channel.send("あなたはBOT管理者ではありません"); 31 const [a, c] = args 32 const b = await message.channel.send("Gmuteの準備をしています...") 33 const gmute = (await gmutes.get(a)) || { score: 0, reason: 0 } 34 const muteuser = client.users.fetch(a).tag 35 gmutes.set(a, { score: 1, reason: c }) 36 if (gmute.score == 1) b.edit(`${muteuser}(${message.author.id})をGmuteしました。\n追加理由: ${c}`); 37} 38if (command === "ungmute") { 39 if (message.author.id === "695500134179536907||663196515384295425") return message.channel.send("あなたはBOT管理者ではありません"); 40 const [a, c] = args 41 const b = await message.channel.send("Gmute解除の準備をしています...") 42 const gmute = (await gmutes.get(a)) || { score: 0, reason: 0 } 43 const muteuser = client.users.fetch(a).tag 44 gmutes.set(a, { score: 0, reason: c }) 45 if (gmute.score == 0) b.edit(`${muteuser}(${message.author.id})のGmuteを解除しました。\n解除理由: ${c}`); 46} 47});
試したこと
@keyv/sqliteを入れ直した
sqlite3を入れ直した
sqliteを入れ直した
補足情報(FW/ツールのバージョンなど)
Discord.js-v12
client.token("")は省いてます。
回答3件
あなたの回答
tips
プレビュー