- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 sequelize 和 sqlite 在 dicord.j 沙中制作一个不和谐的机器人来制作数据库。它有一个货币系统,当有人在特定 channel 发帖时,我收到了这个错误 SequelizeDatabaseError: SQLITE_ERROR: no such table: users
虽然在错误中它没有给出我哪里出错的线索,这里是 main.js 文件:
const client = new Discord.Client();
const { Users, CurrencyShop } = require('F:/Users/User/Desktop/SuccessBot/dbObjects.js');
const { Op } = require('sequelize');
const async = require('async')
const currency = new Discord.Collection();
const token = ''
var CHANNEL_ID = '733612021869838387';
var LEADERBOARD_ID = '734352105481044019'
const prefix = '-';
Reflect.defineProperty(currency, 'add', {
value: async function add(id, amount) {
const user = currency.get(id);
if (user) {
user.balance += Number(amount);
return user.save();
}
const newUser = await Users.create({ user_id: id, balance: amount });
currency.set(id, newUser);
return newUser;
},
});
Reflect.defineProperty(currency, 'getBalance', {
value: function getBalance(id) {
const user = currency.get(id);
return user ? user.balance : 0;
},
});
client.once('ready', async () => {
const storedBalances = await Users.findAll();
storedBalances.forEach(b => currency.set(b.user_id, b));
console.log('Radar Success is online!');
});
client.on('message', message =>{
if(message.author.bot) return;
currency.add(message.author.id, 1);
if (message.channel.id === CHANNEL_ID) {
memberTag = message.member.id
var score = '1'
const target = message.mentions.users.first() || message.author;
//return message.channel.send(`${target.tag} has ${currency.getBalance(target.id)}💰`);
return message.channel.send('<@' + memberTag + `> Thanks for posting success! Your score is now ${currency.getBalance(target.id)}`);
}
if (message.channel.id === LEADERBOARD_ID) {
return message.channel.send(
currency.sort((a, b) => b.balance - a.balance)
.filter(user => client.users.cache.has(user.user_id))
.first(10)
.map((user, position) => `(${position + 1}) ${(client.users.cache.get(user.user_id).tag)}: ${user.balance}💰`)
.join('\n'),
{ code: true }
);
}
});
client.login(token);
然后我有一个文件来存储不同的用户,存储他们的物品并存储商店:
module.exports = (sequelize, DataTypes) => {
return sequelize.define('users', {
user_id: {
type: DataTypes.STRING,
primaryKey: true,
},
balance: {
type: DataTypes.INTEGER,
defaultValue: 0,
allowNull: false,
},
}, {
timestamps: false,
});
};
UserItems.js:
return sequelize.define('user_item', {
user_id: DataTypes.STRING,
item_id: DataTypes.STRING,
amount: {
type: DataTypes.INTEGER,
allowNull: false,
'default': 0,
},
}, {
timestamps: false,
});
};
货币商店.js
return sequelize.define('currency_shop', {
name: {
type: DataTypes.STRING,
unique: true,
},
cost: {
type: DataTypes.INTEGER,
allowNull: false,
},
}, {
timestamps: false,
});
};
然后我使用 dbInit.js 设置 sequelize 数据库:
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'sqlite',
logging: false,
storage: 'database.sqlite',
});
const CurrencyShop = sequelize.import('models/CurrencyShop');
sequelize.import('models/Users');
sequelize.import('models/UserItems');
const force = process.argv.includes('--force') || process.argv.includes('-f');
sequelize.sync({ force }).then(async () => {
const shop = [
CurrencyShop.upsert({ name: 'Tea', cost: 1 }),
CurrencyShop.upsert({ name: 'Coffee', cost: 2 }),
CurrencyShop.upsert({ name: 'Cake', cost: 5 }),
];
await Promise.all(shop);
console.log('Database synced');
sequelize.close();
}).catch(console.error);
和 dbObjects.js:
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'sqlite',
logging: false,
storage: 'database.sqlite',
});
const Users = sequelize.import('./models/Users');
const CurrencyShop = sequelize.import('./models/CurrencyShop');
const UserItems = sequelize.import('./models/UserItems');
UserItems.belongsTo(CurrencyShop, { foreignKey: 'item_id', as: 'item' });
Users.prototype.addItem = async function(item) {
const useritem = await UserItems.findOne({
where: { user_id: this.user_id, item_id: item.id },
});
if (useritem) {
useritem.amount += 1;
return useritem.save();
}
return UserItems.create({ user_id: this.user_id, item_id: item.id, amount: 1 });
};
Users.prototype.getItems = function() {
return UserItems.findAll({
where: { user_id: this.user_id },
include: ['item'],
});
};
module.exports = { Users, CurrencyShop, UserItems };
我知道这是一个非常广泛的问题,因为我已经提供了我所有的代码,但是如果有人在这方面非常有经验,这可能是一个快速解决方案,期待答案!
最佳答案
这是一个 SQL 错误,您的数据库没有 users
表
关于javascript - Discord bot 错误 - SequelizeDatabaseError : SQLITE_ERROR: no such table: users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62982352/
我在 iOS 应用程序中有一个函数,它从数据库中读取一些数据。功能极其简单: -(void) readCategories { sqlite3 *database; if([[NSFi
如果我想将这些表行放在一起,则会出现以下错误 [SQLITE_ERROR] SQL错误或缺少数据库(输入不完整) 每个人都单独工作。 SELECT x.ActionListId, x.wordinde
我正在尝试使用 Android Room并在关注 this tutorial 之后尝试构建应用程序时出现以下错误: Error:(23, 27) error: 查询有问题:[SQLITE_ERROR]
我正在尝试使用外键创建一个数据库,但我一直收到 no such column: created_at 的错误,即使我没有在代码中的某处使用 created_at 。我想知道为什么以及如何修补这个问题。
我已经为此工作了几个小时,必须让它工作!它阻碍了 iPhone 应用程序的发布...我第一次使用 SQLite。我已遵循所有建议,但我的 sqlite3_prepare_v2 调用每次都会收到 SQL
我正在使用 SQLite3我有一个列,但错误表明未创建列“未定义”。 const SQLite = require('sqlite3').verbose(); const db = new SQLit
我正在编写一个简单的服务器/客户端来跟踪用户登录的次数。用户可以创建一个帐户并将他们的计数设置为 1。后续登录将增加他们在后端 SQLITE3 中的计数数据库。 在下面的示例中,我运行了“添加”函数,
我正在将 Sequelize 与 sqlite 一起使用,当我尝试向表中插入数据时出现错误 Executing (default): INSERT INTO `Users` (`id`,`userna
我正在为我的数据库使用 Sequelize (6.3.0) 和 sqlite3 (4.2.0),我正在尝试定义以下模型: this.define("giveaways", {
这是我的第一个问题。 我正在使用 Room 数据库构建应用程序,并尝试关注 this教程,因为我需要实现多对多关系。 但是,当我尝试构建应用程序时,我不断收到以下错误: 错误:查询有问题:[SQLIT
我正在尝试将 SQLite 与 Java 结合使用,这是第一次将两者结合使用,代码如下: package db; import java.sql.Connection; import java.sql
试图获取一个包含日期和相关注释的表格。我正在发送请求以获取表格和数据,日期 = 我决定的任何内容。 我收到以下错误: E/AndroidRuntime: FATAL EXCEPTION: main
我试图从数据库中获取 rowid,其中有人与刚刚写消息的人具有相同的用户名。当我更改时代码可以工作 WHERE creator` =${member.username} to WHERE match
当我使用flutter并创建表时,出现以下错误! : error DatabaseException(incomplete input (code 1 SQLITE_ERROR): , while c
[SQLITE_ERROR] SQL error or missing database (near "(": syntax error) try { String sql = "SELECT
我已经编写了sequelizer迁移javascript来对表中的现有列进行更改,但是当我运行命令sequelizer db:migrate,它给出了错误 == 20170212050240-alte
我正在尝试使用新的房间库,但出现此错误 Error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing da
我正在使用 sequelize 和 sqlite 在 dicord.j 沙中制作一个不和谐的机器人来制作数据库。它有一个货币系统,当有人在特定 channel 发帖时,我收到了这个错误 Sequeli
我正在尝试在新创建的 SQLite 数据库中创建一个表。由于某种原因,我收到 SQLException: try { logger.debug("Trying to create ta
我有一个报价应用程序,其中使用 SqlLite 数据库来存储报价。当用户打开应用程序时,它将数据从 Assets 复制到数据库。它在所有版本中都工作正常,但在 Android P 中,它在应用程序启动
我是一名优秀的程序员,十分优秀!