В настоящее время я использую паспорт для аутентификации в моем приложении. При попытке получить электронную почту пользователя, чтобы сохранить ее в моей БД вместе с другой информацией, я получаю возвращенное значение undefined. Если я потяну весь объект пользователя, я получу правильную информацию. Увидеть ниже.
Вот файл server.js, инициализирующий сеанс.
app.use(session({
secret: 'sessionSecret'
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
Вот информация о маршруте
app.get('/itemCreation', function (req, res) {
res.render('itemCreation.ejs', {
user: req.user
});
});
app.post('/itemCreation', function (req, res) {
var item = new itemSchema();
item.local.productName = req.body.productName;
item.local.itemPrice = req.body.itemPrice;
item.local.Quantity = req.body.Quantity;
item.local.Description = req.body.Description;
console.log(req.user.firstName);
item.save(function (err) {
if (err)
throw err;
else
console.log('Saved item information successfully');
});
res.redirect('/shop');
});
Вот моя модель товара
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
var itemSchema = mongoose.Schema({
local : {
productName : String,
itemPrice : Number,
Quantity : Number,
Description : String
}
});
module.exports = mongoose.model('item', itemSchema);
Вот результат вытягивания всего объекта , который я получаю, вызывая
console.log(req.user);
и вот результат извлечения только письма от объекта , которое я получаю, позвонив по номеру
console.log(req.user.email);