Я использую Node.js, express. js, пн goose и мопса. Я пытаюсь создать систему регистрации / регистрации / входа. Имя и адрес электронной почты хранятся в базе данных mon goose со схемой, указанной для имени, адреса электронной почты и даты. Имя и адрес электронной почты приходят со страницы мопса, которая отправляет запрос на публикацию. Позже я добавлю другие регистрационные данные в код, но я не могу придумать, как реализовать проверку электронной почты.
Это мой /routes/index.js
const express = require('express');
const {
check,
validationResult
} = require('express-validator');
const router = express.Router();
//Mongoose
const mongoose = require('mongoose');
var registration = require('../models/registrations') //Important
//Routes
//------------------------------------------------------------------------------------REGISTER/SIGN UP
router.get('/', (req, res) => {
res.render('./home.pug')
})
router.get('/register', (req, res) => {
res.render('register', {
title: 'Register'
});
});
router.post('/register', [
check('name')
.isLength({
min: 5
})
.withMessage('Please enter a name'),
check('email')
.isLength({
min: 14
})
.withMessage('Please enter an email'),
], (req, res) => {
const errors = validationResult(req);
if (errors.isEmpty()) {
const regis = new registration(req.body);
regis.save()
.then(() => {
res.send('Thank you for your registration!');
})
.catch((err) => {
console.log(err);
res.send('Sorry! Something went wrong.');
})
} else {
res.status(422).render('register', {
title: 'Registration form',
errors: errors.array(),
data: req.body,
});
}
console.log(req.body)
})
//Register-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x
//-------------------------------------------------------------------------------------------LOGIN
router.get('/login', (req, res) => {
res.render('login', {
title: 'Login'
});
});
//Login-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x
router.get('/about', (req, res) => {
res.render('about', {
title: 'About'
});
});
module.exports = router;
Я пытался использовать это:
var emailcheck = registration.findOne({email: req.body.email});
if (emailcheck){
//Give error
}else{
//Run this
}
Однако это не сработало так, как я думал. Иногда он выдавал ошибку, иногда запускался, даже если электронная почта уже используется.