簡體   English   中英

Node.js - SequelizeDatabaseError:列“user_id”不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM