db.run 不是函数:Discord.js sqlite

Posted

技术标签:

【中文标题】db.run 不是函数:Discord.js sqlite【英文标题】:db.run is not a fuction: Discord.js sqlite 【发布时间】:2018-12-02 22:20:35 【问题描述】:

所以我收到这个错误,特别是“(node:9780) UnhandledPromiseRejectionWarning: TypeError: db.run is not a function” 我不知道出了什么问题,所以我想这里有人可以帮助我。

  const Discord = require("discord.js");
  const client = new Discord.Client();
 const bot = new Discord.Client();
 const sql = require("sqlite")
  const db = sql.open('./database.sqlite',  Promise );

 const fs = require("fs");
 const staff = ["97122523086340096", "450241616331145217", "283438590875402240", "288755621787074560"]
 const config = require("./config.json");
client.on("ready", async () => 
   console.log(`$client.user.username is ready to help servers!`)
   console.log ("Warning: I am being locally hosted. During high usage times, the bot may crash.")
    db.run("CREATE TABLE IF NOT EXISTS guild (guildId TEXT, language INTEGER, links INTEGER)");
   console.log(`I am available in 1 shard! I am in $client.guilds.size guilds and serving $bot.users.size`)
   client.user.setActivity("For sat!help", type: "WATCHING", status:"dnd");
   client.user.setPresence( status:"idle" )
      );

     fs.readdir("./events/", (err, files) => 
     if (err) return console.error(err);
    files.forEach(file => 
    let eventFunction = require(`./events/$file`);
     let eventName = file.split(".")[0];
     client.on(eventName, (...args) => eventFunction.run(client, ...args));
     );
     );

    client.on("message", message => 
        if (message.author.bot) return;
     if(message.content.indexOf(config.prefix) !== 0) return;
    const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
     const command = args.shift().toLowerCase();

    try 
     let commandFile = require(`./commands/$command.js`);
     commandFile.run(bot, message, args);
      catch (err) 
    return
     
     );
      client.on("guildCreate", guild => 
      let guildp = guild.owner
        guildp.send("Thanks for adding me to your server! \n To save you some time I would suggest you run the command 'sat!setup' to create the nessecary roles and channels for the bot. \n Please note that the channel is not made with perms.\n ***[PLEASE NOTE!] - I am still in beta so any issues with any part of the bot please tell us with sat!bug! \n Thanks!")

   )
    client.login(config.token);

【问题讨论】:

【参考方案1】:

兑现承诺

来自 NPM - https://www.npmjs.com/package/sqlite:

const dbPromise = sqlite.open('./database.sqlite',  Promise );
const db = await dbPromise;

【讨论】:

我似乎没有工作。现在我又遇到了一个错误.. SyntaxError: await is only valid in async function @saddy 在分配它的异步函数中返回它。异步函数 database()return awaitdbPromise let db=database()

以上是关于db.run 不是函数:Discord.js sqlite的主要内容,如果未能解决你的问题,请参考以下文章

“fn 不是函数” discord.js

bal 不是函数 (DISCORD.js)

Discord.js 13 channel.join 不是函数

Discord.js:message.guild.channels.forEach 不是函数

Discord.js Bot 赠品命令:.array() 不是函数

discord.js-commando TypeError:RichEmbed 不是构造函数