Discord.js 如何使用 sqlite 快速发送消息作者

Posted

技术标签:

【中文标题】Discord.js 如何使用 sqlite 快速发送消息作者【英文标题】:Discord.js How to send message author in express using sqlite 【发布时间】:2020-05-24 11:38:13 【问题描述】:

我一直在编写一个 discord 机器人,它允许您执行 !v 来创建一个快速页面,该页面使用随机生成的密钥将您的 Steam 帐户链接到您的 discord 帐户。到目前为止,除了将 steamid 插入 sqlite 表之外,一切都进行得很顺利。

我需要让代码获取发送 !v 命令的用户,并将 steamid 插入到该用户下的表中。这是我现在的代码:

app.get('/api/auth/:userid', steam.authenticate(), function(req, res) 

    sql.all(`SELECT * FROM info WHERE userid ="$message.author.id"`).then(rows => 
        rows.forEach(function (row) 
    req.params( "userid": row.key )
    res.redirect('/');
    res.send(req.params);
    )
)

);

app.get('/api/verify/', steam.verify(), function(req, res) 

sql.get(`SELECT * FROM info WHERE userid ="$message.author.id"`).then(row => 
        if (!row) 
sql.run("INSERT INTO info (key, userid, name, steamid) VALUES (?, ?, ?, ?)", [rngkey.toString(), message.author.id, message.author.username, req.user.steamid]);
    res.send(req.user).end();

        
    ).catch(() => 
        console.error;
        sql.run("CREATE TABLE IF NOT EXISTS info (key TEXT, userid TEXT, name TEXT, steamid TEXT)").then(() => 
            sql.run("INSERT INTO info (key, userid, name, steamid) VALUES (?, ?, ?, ?)", [rngkey.toString(), message.author.id, message.author.username, req.user.steamid]);
        );
    );

);

This is what the table looks like

是否可以从身份验证页面获取 /:userid(rngkey),然后将 steamid 插入该密钥行?

【问题讨论】:

【参考方案1】:

通过将该代码放在 client.on 中解决了我的问题,并且效果很好。

【讨论】:

以上是关于Discord.js 如何使用 sqlite 快速发送消息作者的主要内容,如果未能解决你的问题,请参考以下文章

无法安装 better-sqlite3 discord.js

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

我的 discord.js 机器人的 sql 没有/不能从我的 sqlite3 db 定义一个表

为我的 discord.js 机器人创建一个排名列表

在 node.js 应用程序中使用参数中的变量从 sqlite 数据库中查询数据

在 Sqlite 中使用 WHERE NOT EXISTS 返回语法错误