You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Далее у app воспользуемся функцией use в которую первым параметром передаем url по которому этот роутер будет обрабатывать ("/api"), вторым параметром передаем уже сам роутер.
app.use('/api',userRouter);
Указываем express что нужно будет распаршивать json строку (app.use(express.json())).
app.use(express.json());
12. Реализация функций user.controller.js.
Начнем с функции createUser.
С помощью деструктуризацией получим из тела запроса имя и фамилию (req.body).
затем выводим в логи и ответом на клиент вернем просто ok (res.json("ok")).
Проверить через postman. Отправлять запросы будем на следующий адрес: http://localhost:8080/api/user. Далее переходим к телу запроса (body -> row), и разрешение json, заполняем запрос рандомными именем и фамилией:{"name": "ivan","surname": "ivanov"}.
13. Реализуем записать пришедших данных в базу данных.
В файле user.controller.js импортируем db который мы создавали ранее.
constdb=require("../db");
В функции createUser после получения данных из тела создаем нового пользователя.
Создаем нового пользователя с помощью db, вызовем функцию query с sql запросом в параметре (INSERT INTO person (name, surname) values ($1, $2) RETURNING *, [1, 2]).
Ответом на клиент вернем пользователя, а точнее только данные которые находятся в rows[0].
classUserController{asynccreateUser(req,res){const{ name, surname }=req.body;constnewPerson=awaitdb.query("INSERT INTO person (name, surname) values ($1, $2) RETURNING *",[name,surname]);res.json(newPerson[0]);}asyncgetUsers(req,res){}asyncgetOneUser(req,res){}asyncupdateUser(req,res){}asyncdeleteUser(req,res){}}
Проверить через postman.
14. Реализация функции получения всех пользователей getUsers.
Создаем новую переменную в которую мы будем помещать пользователей и так же пишем запрос.
На клиент будем возвращать поле rows.
asyncgetUsers(req,res){constusers=awaitdb.query(`SELECT * FROM person`)res.json(users.rows)}
Проверить через postman.
15. Реализация функции получение конкретного пользователя getOneUser.
Получаем id из параметров запроса (req.params.id).
С помощью запроса выделяем пользователя из db.
И на клиент вернем этого пользователя.
asyncgetOneUser(req,res){constid=req.params.id;constuser=awaitdb.query(`SELECT * FROM person WHERE id = $1`,[id]);res.json(user.rows[0]);}
Проверить через postman.
16. Реализация функции изменения пользователя по id. Функция updateUser.
Получаем из запроса id новое имя name и новую фамилию surname.
Далее пишем запрос (UPDATE person set name = $1, surname = $2 where id = $3 RETURNING *).
И возвращаем на клиент результат запроса.
asyncupdateUser(req,res){const{ id, name, surname }=req.body;constuser=awaitdb.query(`UPDATE person set name = $1, surname = $2 where id = $3 RETURNING *`,[name,surname,id]);res.json(user.rows[0]);}
Проверить через postman.
17. Реализация функции удалениz пользователя deleteUser.
Узнаем id пользователя из запроса.
Создаем запрос на удаление (DELETE FROM person WHERE id = $1).
Возвращаем результат.
asyncdeleteUser(req,res){constid=req.params.id;constuser=awaitdb.query(`DELETE FROM person WHERE id = $1`,[id]);res.json(user.rows[0]);}
Проверить через postman.
18. Файлы для работы с post.
Создаем файл post.controller.js.
В нем создаем класс PostController.
Экспортируем новый объект этого класса.
Создаем две функции для создания и получения createPost и getPostsByUser.