gpt4 book ai didi

javascript - Node.js - SequelizeDatabaseError : column "user_id" does not exist

转载 作者:行者123 更新时间:2023-12-03 22:20:45 28 4
gpt4 key购买 nike

我有一个非常简单的架构,但是当我尝试调用数据时,它会返回错误SequelizeDatabaseError: column "user_id" does not exist我的数据库只包含三个表。以下是所有这些的架构文件:
用户

module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('users', {
email: DataTypes.STRING,
password: DataTypes.STRING
}, {});
User.associate = function (models) {
User.hasMany(models.survey_instances)
};
return User;
};
调查实例

module.exports = (sequelize, DataTypes) => {
const SurveyInstances = sequelize.define('survey_instances', {
userId: {
field: 'user_id',
type: DataTypes.INTEGER
},
templateId: {
field: 'template_id',
type: DataTypes.INTEGER
},
fields: DataTypes.JSONB,
}, {
underscored: true,
});
SurveyInstances.associate = function (models) {
SurveyInstances.belongsTo(models.survey_templates, { foreignKey: 'templateId' })
SurveyInstances.belongsTo(models.users, { foreignKey: 'userId' })
};
return SurveyInstances;
};

调查模板
module.exports = (sequelize, DataTypes) => {
const SurveyTemplates = sequelize.define('survey_templates', {
fields: DataTypes.JSONB,
}, {});
SurveyTemplates.associate = function (models) {
SurveyTemplates.hasMany(models.survey_instances)
};
return SurveyTemplates;
};

我的数据库已填充,我通过以下方式进行调用:
http://localhost:3000/templates?id=1
在 Node 中处理这个端点的代码是:
app.get('/templates', authenticateToken, async (req, res) => {
const templates = await db.survey_instances.findByPk(1);
res.send(templates);
});
我是 node 的新手,所以也许错误很明显,但我看不到它。如果有人帮助我,我将不胜感激。谢谢!

最佳答案

我想通了这个问题。新的 Sequelize 更新中有一个错误,它不会使 underscored: true 选项起作用。可以找到更多详细信息 here
所以我现在只用 Camel shell 而不是蛇 shell 。现在一切正常。

关于javascript - Node.js - SequelizeDatabaseError : column "user_id" does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65469207/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com