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);
});