Я получаю деньги за разработку среднего стека. Я вроде бы застрял там, где мое требование - получить сообщение по функциональности. Я пытаюсь создать простое приложение для объявлений, в котором пользователь добавляет/обновляет/удаляет классифицированные. Я могу сделать все это, но теперь мне нужно отобразить имя этого конкретного пользователя в этом добавлении, кто вошел в систему. Я исследовал его в Интернете, но не смог получить решение.Получение информации о пользователе в другой схеме [mongoose]
Моя схема
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' }
});
Мой маршрут
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);
});
Я хочу знать, как я могу получить имя пользователя при отправке классифицированного? Я знаю о функции заполнения, но я пробовал ее, и она, похоже, не работает.
Update
Я добавил мою регистрацию и вход маршрут, чтобы показать вам использование паспорта.
Да я использую паспорт, но я всегда получаю неопределенными всякий раз, когда я пытаюсь получить доступ req.user –
@ fahad.kazi Пользователь зарегистрирован? –
Да, я попытался добавить классификацию, когда пользователь вошел в систему, и попробовал распечатать req.user на консоли. Я не определился. –