Node.js sequelize未在model.create上包含用户
Sequalize在创建帖子时不返回关联用户。这是路由器 我也参考了文档 我不确定这为什么不起作用,因为这条路线使用相应的用户和用户名获取帖子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"] },
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
});
});
})