2017-04-05 20 views
1

ログインしたユーザーによって、自分のユーザー/ myarticlesviewの記事のみを表示します。 私はそれを行うことができます方法: はここに私のUserモデルと記事スキーマです:特定のユーザーによる記事のみを取得する方法Express.js

let userSchema = mongoose.Schema(
{ 
    email: {type: String, required: true, unique: true}, 
    passwordHash: {type: String, required: true}, 
    salt: {type: String, required: true}, 
    articles: [{type: ObjectId, ref: 'Article'}], 
    roles: [{type: ObjectId, ref: 'Role'}] 
} 

)。

let articleSchema = mongoose.Schema (
{ 
    author: {type: ObjectId, ref: 'User'}, 
    title: {type: String, required: true }, 
    content: {type: String, required: true }, 
    phone: {type: Number, required: true }, 
    date: {type: Date, default: Date.now() } 
} 

);

私はUserControllerででこれをやりたいし、ビューに渡さ:

myArticlesGet: (req, res) => { 
    if (!req.isAuthenticated()) { 
     res.redirect('/'); 
     return; 
    } 

    res.render('user/myarticles') 

} 

を私はquery.Thankあなたにするためにどのようにそれを把握傾けます。

+0

のように、ユーザーからユーザーの記事を取得することができますexpress sessionsを使用していたような(https:/ /github.com/expressjs/session)? –

+0

はい明示的なセッションをustingしています –

+0

セッションから、ユーザー文書を見つけてください。ユーザードキュメントを入手したら、[populate](http://mongoosejs.com/docs/populate.html)の 'articles'だけで済みます。 –

答えて

1

ユーザーが認証されたときに急行セッションでuserIdを保存することができ、その後、あなたが[特急セッション]を使用している

User.find({_id: req.session.userId}).populate('articles') 
+1

ご協力いただきありがとうございます –

関連する問題