подтверждение по электронной почте из базы данных с использованием экспресс-узла js js и angular 6 с базой данных mysql - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю пользователя с полем «электронная почта», поэтому я хочу проверить, существует ли это электронное письмо или нет, если существует сообщение об ошибке.у меня есть мой код в экспресс-js, node js, angular 6 и базе данных mysql, и ниже приведен код для создания нового пользователя

exports.create = (req, res) => {    
    // Save to MySQL database
    let customer = req.body;
    Customer.create(customer).then(result => {      
        // Send created customer to client
        res.json(result);
    });
};

где я должен использовать оператор if в приведенном выше коде

Спасибозаранее

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Я думаю, что вы используете Sequelize ORM.

Вы можете сделать это

Customer.findOrCreate({
    where: {
      email: req.body.email,
    },
    // other datas needs to inserted
    defaults: {
      name: req.body.name,
      username: req.body.username,
    },
  }).spread((data, created) => {
    if (created) {
      // your logics
    } else {
      res.status(400).send(`${req.body.email} already exists.`);
    }
});
0 голосов
/ 20 декабря 2018

Я думаю, что самый простой способ решения вашей проблемы - сделать столбец электронной почты в базе данных уникальным.Если вы попытаетесь вставить нового пользователя с уже существующим адресом электронной почты, запрос не удастся выполнить.

Другое решение - сначала выполнить запрос, который просматривает базу данных, если у уже существующего пользователя есть адрес электронной почты (из req..body.email).Но для этого потребуются два разных SQL-запроса, которые я лично не предпочел бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...