Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js-SequelizeDatabaseError:column";“用户id”;不存在_Javascript_Node.js_Rest_Express_Sequelize.js - Fatal编程技术网

Javascript Node.js-SequelizeDatabaseError:column";“用户id”;不存在

Javascript Node.js-SequelizeDatabaseError:column";“用户id”;不存在,javascript,node.js,rest,express,sequelize.js,Javascript,Node.js,Rest,Express,Sequelize.js,我有一个非常简单的模式,但当我试图调用数据时,它会返回错误 SequelizeDatabaseError:列“用户id”不存在 我的数据库只包含三个表。下面是它们的模式文件: 使用者 调查实例 module.exports = (sequelize, DataTypes) => { const SurveyInstances = sequelize.define('survey_instances', { userId: { field: 'user_id',

我有一个非常简单的模式,但当我试图调用数据时,它会返回错误

SequelizeDatabaseError:列“用户id”不存在

我的数据库只包含三个表。下面是它们的模式文件:

使用者

调查实例


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更新中有一个bug,使得
下划线:true
选项无法工作。可以找到更多细节


所以我现在只是用骆驼皮而不是蛇皮。现在一切都正常了。

我解决了这个问题。在新的Sequelize更新中有一个bug,使得
下划线:true
选项无法工作。可以找到更多细节


所以我现在只是用骆驼皮而不是蛇皮。现在一切正常。

您在
survey\u实例
模型中将
user\u id
指定为一个字段。您是否检查过它是否存在于DB中的真实表中?嗨,Anatoly,谢谢您的回复。好的,它确实存在,但是它显示为
userId
而不是
userId
。当我定义模型时,我认为添加
下划线:true
可以处理它,但显然,这里出了问题。您知道是什么吗?您是如何创建DB结构的?您在
survey\u instances
模型中将
user\u id
指定为一个字段。您是否检查过它是否存在于DB中的真实表中?嗨,Anatoly,谢谢您的回复。好的,它确实存在,但是它显示为
userId
而不是
userId
。当我定义模型时,我认为添加
下划线:true
可以处理它,但显然,这里出了问题。你知道什么吗?你是如何创建数据库结构的?
app.get('/templates', authenticateToken, async (req, res) => {
  const templates = await db.survey_instances.findByPk(1);
  res.send(templates);
});