Sequelize:创建帖子并将其与当前用户相关联时出错

问题描述 投票:0回答:1

创建帖子并尝试将其与当前用户关联时出现错误:

SequelizeDatabaseError: Field 'userId' doesn't have a default value

这是我的方法

exports.createPost = async (req, res) => {
    const {title, content, userEmail} = req.body;
    const user = await User.findOne({
        where: {
            email: userEmail
        }
    })
    if (user) {
        const post = await Post.create({
            title, content, image: req.file.originalname, userId: user.id
        })
        res.json(post)
    }
}

也尝试过user: user。>>

这是我的用户模型

'use strict';
module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    username: DataTypes.STRING,
    email: DataTypes.STRING,
    password: DataTypes.STRING
  }, {});
  User.associate = function(models) {
    User.hasMany(models.Post)
  };
  return User;
};

这是发布模型,其中声明了belongsTo关系

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Post = sequelize.define('Post', {
    title: DataTypes.STRING,
    content: DataTypes.STRING,
    image: DataTypes.STRING
  }, {});
  Post.associate = function(models) {
    Post.belongsTo(models.User, {
        onDelete: 'CASCADE'
    })
  };
  return Post;
};
    

我在创建帖子并将其与当前用户关联时出错:SequelizeDatabaseError:字段'userId'没有默认值,这是我的方法exports.createPost = async(...

node.js sequelize.js associations
1个回答
1
投票
您尚未以正确的方式定义关联。你可以这样做。
© www.soinside.com 2019 - 2024. All rights reserved.