Добро пожаловать в сегодняшнюю статью. Мы создадим API входа в систему и регистрации.
Поскольку эта статья посвящена Rest API, перед тем, как приступить к созданию Rest API, нам нужно знать, что такое Rest API и API.
Проще говоря, API - это как заказ еды в Интернете. Если пользователь API - это человек, который заказывает еду, которая доступна в меню, а ресторан действует как сервер. Курьер работает как API. И курьер доставляет еду, и аналогично API предоставляет услуги конечным пользователям.
Не все API-интерфейсы являются API-интерфейсами Rest, но все API-интерфейсы Rest являются API-интерфейсами. Rest API в основном используется при разработке мобильных приложений, где такие API-интерфейсы содержат только внутреннюю логику и запускаются на сервере, чтобы уменьшить выполнение на мобильных устройствах пользователей и работают на стороне сервера. Только так наше приложение будет работать быстрее, потребляет меньше энергии и улучшает взаимодействие с пользователем.
Итак, достаточно о том, что такое REST API, и давайте непосредственно поговорим о том, как создать REST API. Перед этим нам нужно будет установить node.js, Postman и MongoDB.
Для установки Node.js: - https://www.guru99.com/download-install-node-js.html
Для установки POST Man: - https://www.toolsqa.com/postman/download-and-install-postman/
Для установки MongoDB: - https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/
После того, как вы закончите установку, вам нужно создать новую папку и дать ей имя, а теперь открыть новый путь к папке в cmd и запустить эти две команды в cmd.
npm init -y
после использования этой команды вы увидите имя файла «package. JSON »в вашей папке при открытии будет выглядеть примерно так: -
{
«name»: «Название проекта»,
«version»: «1.0.0»,
«description»: «»,
«main»: «index. js »,
« scripts »: {
« test »:« echo \ »Ошибка: не указан тест \» && exit 1
},
«keywords»: [] ,
«автор»: «Анил Пандей»,
«лицензия»: «ISC»
}
Теперь используйте команду touch index.js, это создаст файл js в том же каталоге.
Давайте установим несколько пакетов, которые мы будем использовать: - bcryptjs, body-parser, express, mongoose, и комментарий к установке:
npm i имя пакета, то есть npm i bcryptjs
Когда мы закончили настройку проекта, теперь мы начнем с кода. Теперь давайте импортируем все пакеты, которые мы установили, используя ключевое слово «require».
const express = require («экспресс»);
const mongoos = require («мангуст»);
const bcrypt = require («bcryptjs»);
const bodyparser = require ("body-parser");
В приведенном выше описании требуемых пакетов выражается структура node.js, которая действует как промежуточное ПО. mongoose также является фреймворком, который помогает нам подключаться к MongoDB. «Bcryptjs» используется для шифрования и дешифрования данных в узле. body-parser поможет нам заставить наше приложение понимать данные JSON.
mongoos.connect (‘mongodb: // localhost: 27017 / databasename’, {useNewUrlParser: true, useUnifiedTopology: true}) .then (() = ›{console.log (‘ connected to the Mongodb Server ’);})
As, приведенный выше код будет устанавливать соединение с нашей базой данных.
Примечание: - Помните, что при установлении соединения с мангустом всегда добавляйте userNewUrlParser: true и useUnifiedTopology: true. Если вы не передадите эти два параметра, вы получите DeprecationWarning, и в конечном итоге вы не сможете успешно подключиться к своей базе данных.
Итак, давайте создадим схему. Для этого нам нужно создать новый файл user.js
const mongoose = require («мангуст»);
const Схема = mongoose.Schema;
const credential = новая схема ({
имя пользователя : {
тип: String,
требуется: true
},
Пароль : {
тип: String,
требуется: true
}
})
const Credentials = mongoose.model («Credetial», учетные данные);
module.exports = Учетные данные;
В приведенном выше коде (mongoose.Schema) - это встроенная функция для создания схемы. Поскольку нам нужно сохранить имя пользователя и пароль, мы должны определить их тип и требуемый. Если required истинно, то это не может быть нулевое значение, а если ложно, то это может быть нулевое значение. В конце концов, мы используем функцию модели и экспортируем ее.
const userCredential = require («../ пользователь»);
константное приложение = экспресс ();
app.listen (300, () = ›
{// добавляем эту функцию в конец файла. 300 - номер порта
console.log («Сервер прослушивает порт 300»)
})
Добавьте эти строки в файл index.js.
Теперь мы будем создавать модуль регистрации и вставлять данные в нашу базу данных.
const userName = req.body.userName;
const userPassword = req.body.userPassword;
});
Здесь мы будем использовать метод async для синхронизации процесса. В этом методе мы будем получать наши данные через метод body. Есть три способа получить введенные данные: - 1) запрос, 2) параметры, 3) тело. В этой статье мы попробуем методы запроса и тела.
const salt = bcrypt.genSaltSync (10);
const hash = bcrypt.hashSync (пароль пользователя, соль);
console.log (хеш);
Теперь мы зашифруем userPassword. genSaltSync - это случайные текстовые данные, количество которых - это время итераций. Он добавляет случайный текст и создает случайную строку. Функция hashSync принимает два параметра: один - это строка, которую вы хотите зашифровать, а другой - случайная строка, генерируемая методом genSaltSync.
Вот как выглядит наша строка: - $ 2a $ 10 $ CLETThKmEwh7bH9OgY4yf.0 / rlPERwoJdedfybjmWV0 / xXrmzHIFS
На этом мы закончили шифрование нашего пароля. Итак, давайте сохраним данные в нашей базе данных MongoDB.
var data = {
«UserName»: имя пользователя,
«Пароль»: хэш
}
попробовать {
const result = ожидание userCredential (данные) .save ();
res.send (результат);
} catch (ошибка) {
res.send (ошибка);
}
Как видите, мы сохранили данные в переменной JSON и теперь будем создавать блок try-catch. await - это ключевое слово, которое будет ждать, пока не получит никакого ответа.
Примечание: - Все параметры в кружке должны быть одинаковыми для отправки данных JSON.
Как видите, у нас есть данные в нашей базе данных.
Теперь, когда мы закончили с модулем регистрации, теперь мы создадим модуль входа в систему.
app.post (‘/’, async (req, res, next) = ›{
const email = req.query.email;
const пароль = req.query.password;
})
Здесь мы используем другой метод для получения введенных данных по запросу.
попробовать {
const user_Data = ожидание userCredential.findOne ({userName: email})
findOne - это встроенная функция мангуста для поиска отдельных данных и для получения нескольких данных, у нее есть функция «найти». Если это будет SQL, то findeOne будет выглядеть как «SELECT * FROM TABLE WERE USERNAME IS ANILPANDEY», а find будет выглядеть как «SELECT * FROM TABLE».
const com_pass = user_Data.Password;
доступ к паролю из данных JSON.
if (bcrypt.compareSync (пароль, com_pass)) {
Здесь мы сравниваем введенный пользователем пароль и сохраненный пароль пользователя в базе данных.
res.send («Сломанный кодировщик»);
это будет показано, если аутентификация прошла успешно.
} else {
res.send («ввести пароль»);
В противном случае будет показано это сообщение.
}
} catch (ошибка) {
console.log (сообщение об ошибке);
res.send (ошибка);
}
Если произойдет какая-либо ошибка, она будет обработана блоком catch.
Спасибо, что прочитали, попробуйте сами.
Если у вас возникнут проблемы, сообщите мне в разделе ответов.
Хлопайте, если вам это нравится. Поделитесь, если вам это нравится.