Я использую Node.js с платформой express.js поверх нее и базой данных MySql.
У меня есть конечная точка для регистрации, которая принимает 3 параметра:
Электронная почта, имя пользователя и пароль
Затем он запрашивает базу данных, используя SELECT, чтобы узнать, были ли введены имя пользователя или адрес электронной почты. И если нет, он продолжает хешировать пароль, создать новую строку в базе данных, отправить подтверждение по электронной почте и так далее.
Проблема заключается в том, что кто-то быстро отправляет два почтовых запроса, поскольку для обработки вставки данных в запрос требуется некоторое время, чтобы два пользователя имели одно имя пользователя / адрес электронной почты.
По сути, происходит то, что второй запрос запрашивает базу данных до того, как первый запрос даже вставит данные (новый пользователь), и, следовательно, результаты, возвращаемые вторым запросом, состоят в том, что имя пользователя и электронная почта свободны.
Мне было интересно, как я могу предотвратить подобные проблемы в будущем.