Как найти электронную почту в базе данных с помощью Ajax?
В этой статье мы узнаем, как найти электронную почту в базе данных с помощью Ajax . Метод jQuery ajax() использует асинхронные HTTP-запросы для подключения к серверу. Здесь мы будем использовать сервер Node.js и базу данных MongoDB.
Разберемся с помощью пошаговой реализации.
Шаг 1. Создайте папку с именем CHECKEMAIL и выполните следующую команду, чтобы запустить приложение Node.js.
npm init -y
Шаг 2: Используя следующую команду, установите необходимые пакеты npm.
npm install express body-parser mongoose nodemon
Шаг 3: В каталоге вашего проекта создайте файл с именем index.js .
Структура проекта: теперь каталог нашего проекта должен выглядеть так.
Шаг 4: Требуйте и настройте экспресс-приложение, чтобы оно могло начать прослушивание запросов. Наш сервер настроен на использование порта 3000.
index.js
Javascript
const express = require("express");const bodyParser = require("body-parser");const app = express(); app.use(express.json());app.use(bodyParser.urlencoded({ extended: true})); app.listen(3000, () => { console.log("Server started on port 3000");}); |
Шаг 5: Включите приведенный ниже сценарий в файл package.json. Это означает, что мы можем запустить наш сервер с помощью npm start, который будет использовать ранее установленный пакет Nodemon.
пакет.json
"scripts": {
"start": "nodemon index.js"
},Шаг 6: Чтобы запустить сервер, введите команду npm start в терминале.
Шаг 7: Запросите и подключитесь к базе данных MongoDB с помощью пакета mongoose. Если вы работаете над локальным проектом, URL-адрес сервера MongoDB, вероятно, будет mongodb:/localhost:27017/databaseName. Порт по умолчанию — 27017.
Javascript
const mongoose = require("mongoose");mongoose useNewUrlParser: true, }) .then(() => { console.log("Database connected"); }) .catch((err) => { console.log("Connection failed"); }) |
Шаг 8: Перезапустите сервер, чтобы увидеть, успешно ли подключена база данных.
Шаги, чтобы найти электронную почту в базе данных с помощью Ajax:
Шаг 1: Создайте файл HTML с именем index.html, который содержит поле ввода и кнопку отправки. Когда пользователь нажимает кнопку отправки, он отправляет POST-запрос с данными JSON в / route на сервере, после чего сервер дает соответствующий ответ.
HTML
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script src= </script></head> <body> <h1 style="color: green">GeeksforGeeks</h1> <input type="text" placeholder="Email" name="email" id="email" /> <button id="btn">Submit</button> <div id="output" style="background-color: green; color: #fff; width: fit-content"> </div> <script> $(document).ready(() => { $("#btn").click(() => { $("#output").empty(); let email = $("#email").val(); $.ajax({ method: "POST", url: "/", data: { emailId: email }, success: function (data) { // Success callback function if (data.length !== 0) { $("#output").append(`<p>_id: ${data[0]._id}</p>`); $("#output").append(`<p>email: ${data[0].email}</p>`); } else { $("#output").append(`<p>Not Found!</p>`); } console.log(data); }, error: function (error) { // Error callback function console.log(error); }, }); }); }); </script></body> </html> |
Шаг 2: Создайте запрос на получение для отображения HTML-файла на нашем сервере.
Javascript
app.get("/", (req, res) => { res.sendFile(path.join(__dirname + "/index.html"));}); |
Шаг 3: Создайте модель для представления структуры нашей базы данных. Здесь у нас есть схема, описывающая структуру нашей базы данных. Он имеет атрибут электронной почты.
Javascript
const userSchema = { email: { type: String, required: true, },};const user = mongoose.model("users", userSchema); |
Шаг 4: Обработайте запрос на публикацию, используя только что созданную модель. Атрибут электронной почты принимает идентификатор электронной почты из тела запроса.
Javascript
app.post("/", async (req, res) => { try { const userEmail = await user.find({ email: req.body.emailId }); res.send(userEmail); } catch (error) { console.log(error); }}); |
Выход: