2016-07-08 4 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를 콘솔에 인쇄 해 보았습니다. 나는 정의되지 않았다. –