У цьому проєкті реалізовано CLI для роботи з контактами.Це простий Node.js CLI-додаток для керування контактами, які зберігаються у файлі contacts.json.
У файлі contacts.js реалізовані асинхронні функції для роботи з колекцією:
listContacts— повертає весь список контактів;getContactById— шукає контакт заid;addContact— додає новий контакт до файлу;removeContact— видаляє контакт заid.
Файлapp.jsвідповідає за інтерфейс командного рядка. За допомогою пакетаcommanderвін зчитує аргументи, передає їх у функціюinvokeAction, яка викликає потрібний метод зcontacts.js, та виводить результат у консоль.
У цьому проєкті реалізовано REST API для роботи з колекцією контактів, що зберігаються у JSON-файлі.
- bd/contacts.json — база даних контактів у вигляді JSON-файлу.
- controllers/contactControllers.js — контролери, що обробляють запити REST API і викликають відповідні сервіси.
- services/contactServices.js — функції для роботи з даними (читання, додавання, оновлення, видалення контактів у JSON).
- schemas/contactSchemas.js — схеми валідації даних за допомогою пакету
Joiдля POST та PUT запитів. - routes/contactRoutes.js — маршрути API, що пов’язують HTTP-запити з контролерами.
- helpers/ValidateBody.js — middleware для валідації тіла запиту перед контролером.
- helpers/HttpError.js — утиліта для роботи з помилками.
- app.js — основний файл запуску сервера.
- package.json — файл з описом проєкту, залежностями і скриптами запуску.
- GET
/api/contacts— отримати список усіх контактів. - GET
/api/contacts/:id— отримати контакт заid. - POST
/api/contacts— додати новий контакт з валідацією обов’язкових полів:nameemailphone
- PUT
/api/contacts/:id— оновити контакт частково з перевіркою на наявність хоча б одного поля. - DELETE
/api/contacts/:id— видалити контакт заid.