我正在快递中构建应用程序,我使用postgres和sequelize for ORM。我有两个模型,User
和Post
。
在我的user.js
和post.js
个文件中:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('users', {
id: {
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: ""
},
module.exports = function(sequelize, DataTypes) {
return sequelize.define('posts', {
id: {
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
user_id: {
type: DataTypes.INTEGER,
allowNull: true
},
title: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: ""
},
我导入了这两个模型,并且我做了以下关联:
User.hasMany(Post, { foreignKey: 'user_id' });
Post.belongsTo(User, { foreignKey: 'user_id' });
我正在尝试渲染用户完成的所有帖子,但我可能遗漏了一些内容。
在我的路线中,我可以得到正确的用户,但我不知道如何继续。
router.route('/:id').get(async (req, res) => {
const user = await User.findById(req.params.id);
console.log(user);
res.send(user);
})
谢谢!
答案 0 :(得分:0)
findById 不支持关联的模型,
User.findById(req.params.id);
您可以将findById
更改为findOne
并包含此类型的模型,
User.findOne({
where : { id : req.params.id },
include : {
model : Post
}
});