[英]Node.js - SequelizeDatabaseError: column “user_id” does not exist
我有一個非常簡單的架構,但是當我嘗試調用數據時,它會返回錯誤
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
在節點中處理此端點的代碼是:
app.get('/templates', authenticateToken, async (req, res) => {
const templates = await db.survey_instances.findByPk(1);
res.send(templates);
});
我是節點新手,所以錯誤可能很明顯,但我看不到。 如果有人幫助我,我將不勝感激。 謝謝!
我弄清楚了這個問題。 新的 Sequelize 更新中有一個錯誤不會使underscored: true
選項起作用。 更多細節可以在這里找到。
所以我現在只使用駱駝箱而不是蛇箱。 現在一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.