Вот мой код:
const app = require('express')();
const bodyParser =require('body-parser');
const path = require('path');
const mongoose =require('mongoose');
const encrpt = require('mongoose-encryption');
app.use(bodyParser.urlencoded({ extended: true}))
app.set('view engine','ejs')
app.set('views', path.join(__dirname,'views'));
mongoose.connect('mongodb://localhost:27017/auth',{
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false
}).then(() => {
console.log('Connected successfully');
})
//Here is Mongoose Schema
const userSchema = new mongoose.Schema({
email: String,
password: String,
})
// Here is mongoose plugin put before the creation of user model.
const secret = 'this-is-the-secret-key';
userSchema.plugin(encrpt, {secret: secret, encryptedFields: [ 'password']})
//user model
const userModel = mongoose.model('userModel',userSchema);
//Here is route
app.get('/',(req,res)=>{
res.render('home')
})
app.get('/login',(req,res)=>{
res.render('login')
})
// Здесь я сталкиваюсь с проблемой, я получаю правильную страницу секретов в качестве ответа перед добавлением плагина, но после добавления плагина mon goose я всегда получаю Неверное письмо идентификатор или пароль после использования соответствующего идентификатора электронной почты и пароля.
app.post('/login',function(req,res) {
const {username,password} = req.body
userModel.findOne({email: username}, 'password',
function(err ,doc) {
if(err) {
return res.send('<h1>Not Email Id or Password</h1>')
} else {
if(doc) {
if(doc.password === password) {
return res.render('secrets')
}
}
return res.send('<h1>Not Email Id or Password</h1>')
}
})
})
app.get('/register',(req,res) => {
res.render('register')
})
//This router and controller work properly
app.post('/register',async function(req,res) {
try {
const newUser = new userModel({
email: req.body.username,
password: req.body.password
})
await newUser.save()
if(newUser){
res.render('secrets')
}
} catch (error) {
console.log(error)
}
})
app.listen(5000,() =>{
console.log('Server is running at the port 5000');
})
Я могу успешно зарегистрировать пользователя, но не могу войти в систему, используя этот регистрационный идентификатор электронной почты пользователя и пароль. Я не удалось найти ошибку в моем коде? Помогите мне найти ошибку и спасибо заранее !!!