问题标签 [better-sqlite3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
287 浏览

node.js - discord.js better-sqlite3 消息返回未定义

Soooo 我正在尝试创建一个经济系统,但是,每当我输入消息“eco bal ${args}”(其中 args 是表的名称)时,我会得到“未定义”而不是“$0” “这应该是我需要的平衡。这是代码。

当我运行命令“eco bal”时,我得到“你有未定义”

0 投票
1 回答
697 浏览

node.js - discord.js better-sqlite3 命令在没有执行命令的情况下运行

好的,下面是我创建余额为 $0 的数据库的代码,下面是一个测试命令,用于测试两个参数,以便我可以获得以下返回消息:

机器人:“${args} ${args2}”

但是,每当我用两个参数定义测试命令时,我都会收到一条错误消息SqliteError: no such table: a(我输入了命令eco test a b,“a”是 ${args},“b”是 ${args2}。

该错误来自const data = sql.prepare(`SELECT bal FROM ${args}`).get();控制台,这很奇怪,因为我根本没有执行bal命令,并且只执行了test不属于代码所在的命令const data = sql.prepare(`SELECT bal FROM ${args}`).get();

0 投票
0 回答
451 浏览

javascript - 如何检查 Better Sqlite3 中是否存在一行,如果存在,则返回。- Discord.js:更好的Sqlite3

所以标题实际上是主要问题,但从技术上讲,我有两个。首先,我目前正在为它编写一个不和谐的机器人,并且我正在使用 Better-Sqlite3 节点模块。我已经制作了数据库,但命令有点不正常。命令是 !linkplayer(标签)。它通过在数据库中存储标签、discordid、discorduser 和其他一些标签来链接播放器。该命令本身与 if/else 语句链接,询问数据库中的行是否存在,如果存在,则发送消息并返回。如果没有,则在数据库中创建帐户。唯一的问题是,如果存在,它会跳过发送消息部分,然后继续创建它。我也不确定如何解决这个问题。

开启代码:

命令代码:

所以如果有人这样做

链接播放器 #123456

它将搜索 Clash of Clans 数据库,并查看该标签是否存在(有效),如果存在,则应检查数据库中的行是否存在(似乎是损坏的部分)。如果该行存在带有该标签的行,则它会发送该消息。如果不是,那么它会创建带有该标签的行。

目前它只需要执行命令的新人并覆盖旧玩家信息。

第二个问题: 我其实一直在慢慢地把命令放到他们自己的文件中,然后将它们导出到主文件中。但是,似乎当命令涉及 emjoi 时:

如果我把它放到一个单独的文件中(其中的每一点(只是声明)),那么由于某种原因,它会在所有表情符号上返回 null。机器人会找到 labelName3 和所有内容,但是一旦表情符号进来,它似乎就不起作用了。有什么想法吗?

0 投票
2 回答
330 浏览

node.js - SQlite 错误:5 附近的语法错误(better-sqlite3)

有代码,我得到的错误是这样的:let userscore = sql.prepare(`SELECT bal FROM ${args}`).get()

SqliteError: near "5": syntax error

附近的“5”是args2我执行命令的eco tgive args1 5地方,args1 是 SQLite 表的名称。

0 投票
1 回答
53 浏览

node.js - discord.js better-sqlite3 添加实际上并没有添加先前 const 的结果

在数据库“Juliana”中,列的值bal4205You have 420You have 425const result

0 投票
1 回答
600 浏览

node.js - 在 Angular + Electron 应用程序中使用 better-sqlite3:模块解析失败:意外字符

在我的Angular + Electron 应用程序中,我试图安装一些 sqlite 库,以便从 sqlite 数据库文件中读取内容。

我已经安装了better-sqlite3使用:

我试着用它做:

但是,当应用程序构建时,它会失败:

./node_modules/better-sqlite3/build/better_sqlite3.node 中的错误 1:0 模块解析失败:意外字符 '' (1:0) 您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理这个文件。请参阅 https://webpack.js.org/concepts#loaders(此二进制文件省略了源代码) ./node_modules/integer/build/integer.node 中的错误 1:0 模块解析失败:意外字符“”(1: 0) 您可能需要适当的加载器来处理此文件类型,目前没有配置加载器来处理此文件。请参阅 https://webpack.js.org/concepts#loaders(此二进制文件省略了源代码)

看起来我不是第一个在使用 Electron 时遇到这个问题的人。事实上,这个问题已经在这里这里讨论过,但是我找不到适合我的解决方案。

0 投票
2 回答
3398 浏览

node.js - 在嵌入中显示排行榜

我正在尝试为我的 Discord 机器人创建排行榜命令,但在显示数据时遇到了一些问题,我当前的代码只显示顶级用户,你可以在图像中看到 4 行,这是因为有 4 个条目数据库,所以它正在获取信息但不显示所有数据。有人可以指出我做错了什么/我需要改变什么来解决这个问题。(照片中被遮挡的部分是我的用户名)代码:

当前输出: 当前输出: 所需输出: 期望的输出

0 投票
2 回答
68 浏览

sql - 在 SQL 中获取记录位置

我的 Discord 机器人上有一个排名系统,我试图显示一条消息,例如('You are rank #5')所以我需要查询我的数据库,但我对 SQL 不是很好(我使用 better-sqlite3 ) 我所尝试的显然是错误的。有人能帮助我吗?我的尝试:

在这种情况下,我希望 console.log 输出“5”,但当前输出显示“1”(检查照片以获取数据库记录)

数据库

0 投票
1 回答
190 浏览

discord.js - 尝试获取 SQLite 值时,discord.js 机器人返回未定义

每当我运行命令时,我得到you have undefined的不是 SQLite 数据库中输入的数字。

0 投票
0 回答
25 浏览

sql - getJson 函数在接受用户输入时打印出一个空列表

我正在创建一个程序,用户从 data.py* 的下拉菜单中选择一个城市,然后打印出该城市的数据。用户选择城市后,它进入 backend.py* 中的 getJson 函数,该函数将用户选择的城市作为参数。getJson 函数从 SQLite3 表中提取数据并返回一个 json 字符串,该字符串是一个列表,其中包含一个字典,其中城市为键,数据为值。在我让 getJson 函数中的代码在它自己的模块中工作后,通过对 city 参数进行硬编码,它会打印出正确的 json 字符串输出。但是,当我尝试从菜单模块运行 getJson 时,它会打印出正确的用户输入城市,但当我尝试通过该 UI 模块运行 getJson 时,它会打印出一个没有字典的空列表。

这是我在后端模块中创建 SQLite3 表和 getJson 函数的代码:

这是在数据模块中接受用户输入的菜单和功能的代码:

使用硬编码城市运行 backend.py 时的 Ex 输出:

[{芝加哥: 2015, 100}, {芝加哥: 2016, 200}, {芝加哥: 2017, 300}]

从菜单中选择芝加哥运行 data.py 时的 Ex 输出:

芝加哥
[]

我得到的另一个错误是,当我使用 (self.cur.execute("DELETE FROM C")) 这行代码运行 backend.py 时,它工作得非常好,但是当我从 data.py 运行时,它给出了一个数据库被锁定错误。我猜我的大部分错误都是某种语法错误,但我似乎无法弄清楚我的代码有什么问题。任何反馈或更正都会非常有帮助。多谢你们!!