【发布时间】:2018-07-30 03:45:23
【问题描述】:
我有两个结构如下的表:
FeedPost id, text, likecount, commentcount
评论 id, text, lkpfeedpostid
所以有一个通过 lkpfeedpostid 从评论到 feedpost 的外键。所以一个 FeedPost 可以有很多评论。我正在尝试在 sequalize 中进行设置,这样当我执行 FeedPost.findAll() 时,它会拉回带有所有 cmets 的提要帖子。
我是这样设置的:
模型定义:
FeedPost:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('FeedPost', {
...
...
}, {
tableName: 'FeedPost',
classMethods: {
associate : function(models) {
FeedPost.hasMany( Comment, { as: 'comments' });
},
},
});
};
评论:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('Comment', {
...
...
}, {
tableName: 'Comment',
classMethods: {
associate : function(models) {
Comment.belongsTo(FeedPost, { foreignKey: 'lkpfeedpostid'})
},
},
});
};
我正在像这样导入它们:
const FeedPost = sequelize.import('../models/FeedPost');
const Comment = sequelize.import('../models/Comment');
并将它们传递给一个快速路由器,例如:
app.use(feed(FeedPost, Comment));
module.exports = (FeedPost, Comment) => {
const api = Router();
api.get('/api/feed', (req, res) => {
FeedPost.findAll( { include: [ {model: Comment, as: 'Comment' }]}).then(results => {
res.json({results});
});
}
我已经尝试了这些链接中的大量变体:
http://docs.sequelizejs.com/manual/tutorial/models-definition.html#import
http://docs.sequelizejs.com/class/lib/associations/has-many.js~HasMany.html
每当我到达路线时,我都会不断收到错误提示
Unhandled rejection SequelizeEagerLoadingError: Comment is not associated to Feed!
【问题讨论】:
标签: node.js express sequelize.js