Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dm-zhuk/goit-node-cli
Topic 2. Creating console applications
https://github.com/dm-zhuk/goit-node-cli
nodejs
Last synced: about 6 hours ago
JSON representation
Topic 2. Creating console applications
- Host: GitHub
- URL: https://github.com/dm-zhuk/goit-node-cli
- Owner: dm-zhuk
- Created: 2024-07-12T15:33:58.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-07-20T20:06:38.000Z (4 months ago)
- Last Synced: 2024-07-21T03:19:30.389Z (4 months ago)
- Topics: nodejs
- Language: JavaScript
- Homepage: https://dm-zhuk.github.io/goit-node-cli/
- Size: 754 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#goit-node-cli homework
# Домашнє завдання 1
## Крок 1
- Створи репозиторій з назвою `goit-node-cli`, склонуй та ініціалізуй в ньому проєкт за допомогою команди npm init. Встанови як залежність проєкту пакет [commander](https://www.npmjs.com/package/commander)
- В корінь проєкту помісти файли з папки [src](./src)## Крок 2
- У файл `contacts.js` зроби імпорт модулів `fs` (у версії, яка працює з промісами - `fs/promises`) і `path` для роботи з файловою системою.
- Створи змінну `contactsPath` і запиши в неї шлях до файлу `contacts.json`. Для складання шляху використовуй методи модуля `path`.
- Додай асинхронні функції для роботи з колекцією контактів. У функціях використовуй модуль `fs` та його методи `readFile()` і `writeFile()`. Відповідні функції мають повертати необхідні дані за допомогою оператора return. Вивід в консоль в написаних функціях здійснюватись не повинен.
- Зроби експорт створених функцій.```js
// contacts.js/*
* Розкоментуй і запиши значення
* const contactsPath = ;
*/async function listContacts() {
// ...твій код. Повертає масив контактів.
}async function getContactById(contactId) {
// ...твій код. Повертає об'єкт контакту з таким id. Повертає null, якщо контакт з таким id не знайдений.
}async function removeContact(contactId) {
// ...твій код. Повертає об'єкт видаленого контакту. Повертає null, якщо контакт з таким id не знайдений.
}async function addContact(name, email, phone) {
// ...твій код. Повертає об'єкт доданого контакту (з id).
}
```## Крок 3
Зроби імпорт функцій з файла `contacts.js` в файл `index.js`.
Далі використовуй готову функцію `invokeAction()`, яка отримує тип виконуваної дії і необхідні аргументи. Функція має викликати відповідний метод з файлу `contacts.js`, передаючи йому необхідні аргументи. Результат роботи викликаної функції слід вивести в консоль.
## Крок 4
Запусти команди в терміналі і переконайся, що код працює належним чином.
```shell
# Отримуємо і виводимо весь список контактів у вигляді таблиці (console.table)
node index.js -a list# Отримуємо контакт по id і виводимо у консоль об'єкт контакту або null, якщо контакту з таким id не існує.
node index.js -a get -i 05olLMgyVQdWRwgKfg5J6# Додаємо контакт та виводимо в консоль об'єкт новоствореного контакту
node index.js -a add -n Mango -e [email protected] -p 322-22-22# Видаляємо контакт та виводимо в консоль об'єкт видаленого контакту або null, якщо контакту з таким id не існує.
node index.js -a remove -i qdggE76Jtbfd9eWJHrssH
```## Критерії прийому
- Створено репозиторій з домашнім завданням
- Посилання на репозиторій надіслане ментору на перевірку
- Код відповідає технічному завданню проєкту
- У коді немає закоментованих ділянок коду
- Проєкт коректно працює з актуальною LTS-версією Node