Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Node.js sequelize未在model.create上包含用户_Node.js_Postgresql_Sequelize.js - Fatal编程技术网

Node.js sequelize未在model.create上包含用户

Node.js sequelize未在model.create上包含用户,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,Sequalize在创建帖子时不返回关联用户。这是路由器 我也参考了文档 我不确定这为什么不起作用,因为这条路线使用相应的用户和用户名获取帖子 getPosts: async (req: Request, res: Response) => { await models.Post.findAll({ include: [ { model: models.User, as: "author", attributes: ["username"] },

Sequalize在创建帖子时不返回关联用户。这是路由器

我也参考了文档

我不确定这为什么不起作用,因为这条路线使用相应的用户和用户名获取帖子

  getPosts: async (req: Request, res: Response) => {
    await models.Post.findAll({
      include: [
        { model: models.User, as: "author", attributes: ["username"] },
        { model: models.Likes }
      ],
      order: [["createdAt", "DESC"]],
      limit: 6
    }).then(posts => {
      res.json(posts);
    });
  },
这是Post和User的模型

User.js

"use strict";
module.exports = (sequelize, DataTypes) => {
    var User = sequelize.define("User", {
        username: DataTypes.STRING,
        password: DataTypes.STRING,
        email: DataTypes.STRING,
        forget_password: DataTypes.STRING
    });
    User.associate = function (models) {
        User.hasMany(models.Post, {
            foreignKey: "authorId",
            as: "author",
            onDelete: "CASCADE"
        });
    };
    return User;
};
Post.js

"use strict";
module.exports = (sequelize, DataTypes) => {
    var Post = sequelize.define("Post", {
        title: DataTypes.STRING,
        postContent: DataTypes.STRING,
        liked: {
            type: DataTypes.BOOLEAN,
            allowNull: false,
            defaultValue: false
        },
        likeCounts: {
            type: DataTypes.INTEGER,
            allowNull: false,
            defaultValue: 0
        },
        authorId: DataTypes.INTEGER
    });
    Post.associate = function (models) {
        Post.belongsTo(models.User, {
            as: "author",
            foreignKey: "authorId",
            onDelete: "CASCADE"
        });
        Post.hasMany(models.Likes, {
            foreignKey: "resourceId",
            timestamps: false,
            onDelete: "CASCADE",
            scope: {
                type: "article"
            }
        });
    };
    return Post;
};

这给了我想要的结果,所以这会起作用

await models.Post.create(postData)
  .then(post => {
    models.Post.findOne({
      where: {
        id: post.id
      },
      include: [
        { model: models.User, as: "author", attributes: ["username"] },
        { model: models.Likes }
      ]
    }).then(newPost => {
      res.status(200).send({
        message: "post created",
        post: newPost
      });
    });
  })
await models.Post.create(postData)
  .then(post => {
    models.Post.findOne({
      where: {
        id: post.id
      },
      include: [
        { model: models.User, as: "author", attributes: ["username"] },
        { model: models.Likes }
      ]
    }).then(newPost => {
      res.status(200).send({
        message: "post created",
        post: newPost
      });
    });
  })