2016-07-08 8 views
0

私は平均スタックの開発に手を伸ばしています。私はちょっと私の要件が機能によって投稿されることになっています。私はユーザーが分類を追加/更新/削除するシンプルな分類広告アプリを構築しようとしています。私はこれらのすべてを行うことができますが、今私はその特定のユーザーの名前を表示する必要があります。誰がログインしています。私はオンラインで研究しましたが、解決策を得ることができませんでした。分類掲示ながら他のスキーマでユーザーの詳細を取得する[mongoose]

マイスキーマ

router.route('/classifieds') 
     .post(function(req, res) { 
      var classified = new Classified(req.body); 

      classified.save(function(err, classified) { 
       if (err) 
        res.send(err); 
       res.json(classified); 
      }); 
     }) 
     .get(function(req, res) { 
      Classified.find(function(err, classifieds) { 
       if (err) 
        res.send(err); 
       res.json(classifieds); 
      }); 
     }); 

router.route('/register') 
     .post(function(req, res) { 
      if (!req.body.username || !req.body.password || !req.body.email || !req.body.firstName || !req.body.lastName) { 
       return res.status(400).json({message: 'Please fill all the fields!'}); 
      }; 

      var user = new User(req.body); 
      user.setPassword(req.body.password); 

      user.save(function(err, user) { 
       if (err) 
        res.send(err); 
       res.json({ token: user.generateJWT()}); 
      }); 
     }); 

    router.route('/login') 
     .post(function(req, res) { 
      if (!req.body.username || !req.body.password) { 
       return res.status(400).json({ message: 'Please fill all the fields!' }); 
      }; 

      passport.authenticate('local', function(err, user, info) { 
       if (err) 
        res.send(err); 
       if (user) { 
        return res.json({ token: user.generateJWT() }); 
       } else { 
        return res.status(401).json(info); 
       }; 
      })(req, res); 
     }); 

は私が知りたい

var UserSchema = new Schema({ 
    username: { type: String, required: true, unique: true }, 
    firstName: { type: String, required: true }, 
    lastName: { type: String, required: true }, 
    email: { type: String, required: true, unique: true, lowercase: true }, 
    phone: { type: Number, min: 10, unique: true }, 
    hash: String, 
    salt: String 
}); 

var ClassifiedSchema = new Schema({ 
    title: { type: String, required: true, unique: true }, 
    description: { type: String, required: true, }, 
    price: { type: Number, required: true }, 
    created: { type: Date, default: Date.now }, 
    updated: { type: Date, default: null }, 
    contact: { 
     name: String, 
     phone: Number, 
     email: String 
    }, 
    image: String, 
    user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } 
}); 

私のルートは、どのように私は、ユーザー名を入手できますか?私は人口関数を知っているが、私はそれを試してきたし、それは動作していないようです。

更新

私はあなたのパスポートの使用を示すために、私のレジスタやログインのルートを追加しました。

答えて

0

あなたは、ユーザの現在のログに記録されたにreq.userを設定passportのような認証システム、持っている場合:

.get(function(req, res) { 
     Classified.find({user: req.user},function(err, classifieds) { 
      if (err) 
       res.send(err); 
      res.json(classifieds); 
     }); 
    }); 
+0

をはい、私はパスポートを使用していますが、私はreq.userにアクセスしようとするたびに、私は常に未定義取得 –

+0

@ fahad.kaziはログインしているユーザーですか? –

+0

はいユーザーがログインしているときに分類を追加しようとしましたが、req.userをコンソールに印刷しようとしました。私は定義されていない。 –

関連する問題