【发布时间】:2022-01-14 08:05:32
【问题描述】:
我在查询连接表时遇到问题。例如,我使用 findAll() 模型方法。它给了我这个错误
代码:
const { UserItems, sequelize } = require('./dbObjects');
const { Op } = require('sequelize');
async function run() {
const userItem = await UserItems.findAll();
console.log(user);
}
run();
错误:
at async Function.findAll (E:\1dsktp\bot\node_modules\sequelize\dist\lib\model.js:1119:21)
at async run (E:\1dsktp\bot\dbTesting.js:14:15) {
name: 'SequelizeDatabaseError',
parent: [Error: SQLITE_ERROR: no such column: id] {
errno: 1,
code: 'SQLITE_ERROR',
sql: 'SELECT `id`, `amount` FROM `userItems` AS `userItems`;'
},
original: [Error: SQLITE_ERROR: no such column: id] {
errno: 1,
code: 'SQLITE_ERROR',
sql: 'SELECT `id`, `amount` FROM `userItems` AS `userItems`;'
},
sql: 'SELECT `id`, `amount` FROM `userItems` AS `userItems`;',
parameters: {}
}
由于某种原因,它正在尝试查找名为“id”的列,该列当然不存在。
我的数据库非常简单,它由 3 个表组成,其中一个是连接表:
- 用户
- 项目
- UserItems(加入表和我遇到问题的表)
UserItems 有两个外键,分别是来自 User 的 userId 和来自 Item 的 itemId。这些是添加的,将两个表与 belongsToMany() 方法相关联。
User.belongsToMany(Item, { through: UserItems, foreignKey: 'userId' });
Item.belongsToMany(User, { through: UserItems, foreignKey: 'itemId' });
Here is a picture of what the UserItems table looks like (I'm using SQLiteStudio for this)
这是 UserItems 模型
module.exports = (sequelize, DataTypes) => {
const model = sequelize.define('userItems', {
amount: {
type: DataTypes.INTEGER,
defaultValue: 0,
allowNull: false,
},
}, {
timestamps: false,
});
return model;
};
【问题讨论】:
-
请添加
UserItems模型定义。
标签: node.js sqlite sequelize.js