2016-07-17 10 views
0

何らかの理由で、彼は関連を見つけることができません。そして私はアソシエーションを作成し、外部キーはポストグルに完全に作成されています。"ユーザーはフィードに関連付けられていません!" sequelizejs

user.jsの

'use strict'; 

module.exports = app => { 
    const sequelize = app.db_connect.postgres.connect; 
    const Sequelize = app.db_connect.postgres.require; 
    const Reputation = app.models.reputation; 
    const Report = app.models.report; 
    const Group = app.models.group; 
    const Participant = app.models.participant; 
    const Topic = app.models.topic; 
    const Feed = app.models.feed; 

    const User = sequelize.define('user', { 
     //atributes 
    }); 

    User.belongsToMany(User, { as: 'User', through: 'relationship', foreignKey: 'userId' }); 
    User.belongsToMany(User, { as: 'Following', through: 'relationship', foreignKey: 'followingId' }); 
    User.belongsToMany(Group, { as: 'Member', through: Participant, foreignKey: 'userId' }); 
    User.hasMany(Report); 
    User.hasMany(Topic); 
    User.hasMany(Feed); //associate 


    return User; 
} 

feed.js

'use strict'; 

module.exports = app => { 
    const sequelize = app.db_connect.postgres.connect; 
    const Sequelize = app.db_connect.postgres.require; 
    const Report = app.models.report; 

    const Feed = sequelize.define('feed', { 
     //atributes 
    }); 

    Feed.hasMany(Feed, {as: 'father'}); 
    Feed.hasMany(Report) 

    return Feed; 
} 

コール:N:

const User = app.models.user; 
    const Sequelize = app.db_connect.postgres.require; 

    Feed.findOne({ 
     include: User, 
     where: { 
      id: req.params.id 
     } 
    }) 
    .then(result => res.json(result)) 
    .catch(error => { 
     res.status(412).json({msg: error.message}); 
    }); 

ユーザとフィードが1の会合を持っています。だから私はhasManyを続けることにしました。

答えて

0

あなたがフィードではなく、ユーザーを照会しているので、あなたはその「向こう側」を定義する必要があるだけでなく関連の(逆):あなたがFeed.findOneを呼び出すこと

Feed.belongsTo(User, { 
    as: 'User', 
    foreignKey: 'UserID' // or whatever your fk column is named for Feed -> User 
}); 

は注意、通常ます同じasの値を関連付けに設定したものと同じにする必要があります。

Feed.findOne({ 
    include: { 
    model: User, 
    as: 'User' // must match the "as" from the defined association above 
    }, 
    where: { 
    id: req.params.id 
    } 
}); 
関連する問題