Убедитесь, что на рабочем компьютере установлен актуальный LTS релиз Node.js. Актуальная версия Node.js указана
в файле package.json
в поле node
.
Выполните команду
npm install
В проекте используется база данных MongoDB версии 4.2.
Если вы используете Docker, воспользуйтесь файлом docker-compose.yml
, расположенным в корне проекта, для быстрого
разворачивания базы данных.
Запустите JSON-сервер с моковыми данными:
npm run start:mock-server
Сгенерируйте нужное количество предложений об аренде:
npm run generate:tsv # генерирует 100 предложений
или
npm run ts ./src/main.cli.ts -- --generate 100 ./mocks/test-data.tsv http://localhost:3000/api # для более гибкой настройки
Импортируйте данные в базу данных, используя настройки подключения из файла docker-compose
:
npm run import:tsv
или
npm run ts ./src/main.cli.ts -- --import ./mocks/test-data.tsv admin test 127.0.0.1 six-cities salt
В корне проекта находится файл .env-example
. Скопируйте его содержимое в файл .env
и настройте значения переменных.
PORT=4000 - Порт для входящих соединений
SALT=bb792f26-195c-41ab-a9fb-db74f7cdbfb4 - Соль для хеша пароля
DB_USER=admin - Имя пользователя для подключения к базе данных
DB_PASSWORD=test - Пароль для подключения к базе данных
DB_HOST=127.0.0.1 - IP-адрес сервера базы данных (MongoDB)
DB_PORT=27017 - Порт для подключения к базе данных (MongoDB)
DB_NAME=six-cities - Имя базы данных (MongoDB)
UPLOAD_DIRECTORY=upload - Каталог для загрузки файлов
STATIC_DIRECTORY_PATH=static - Путь к каталогу со статическими ресурсами
JWT_SECRET=537075d6-c7db-4cf8-b49b-8a8e7bff0960 - Секрет для знака JWT
HOST=http://localhost - Хост, на котором запущен сервис
В package.json
предопределено несколько сценариев.
npm run compile
Создаст директорию dist
и скомпилирует проект.
npm run clean
Удаляет директорию dist
. Используется перед компиляцией.
npm run ts
Сгенерировать 100 предложений в файл по пути ./mocks/test-data.tsv
c мокового json-api сервера http://localhost:3000/api
(при изменении параметров необходимо менять скрипт в package.json)
npm run generate:tsv
Импортировать из файла ./mocks/test-data.tsv
данные в базу данных MongoDB c DB_USER=admin и DB_PASSWORD=test, по пути 127.0.0.1 с именем базы данных - six-cities и солью - salt
(при изменении параметров необходимо менять скрипт в package.json)
npm run generate:tsv
npm run build
Выполняет сборку проекта: удаляет ранее скомпилированный проект и компилирует заново.
npm run lint
npm run lint:eslint
npm run lint:types
Запуск проверки проекта статическим анализатором кода ESLint.
Линтер проверяет файлы только внутри директории src
.
Обратите внимание, при запуске данной команды, ошибки выводятся в терминал.
npm run ts -- <Путь к модулю с ts-кодом>
Пакет ts-node
позволяет выполнить TS-код в Node.js без предварительной компиляции. Используется только на этапе
разработки.
npm run start:mock-server
Данные берутся из корня проекта ./mocks/mock-server-data.json
npm start:dev
npm start
В процессе запуска проекта будет выполнен процесс «Сборки проекта» и запуска результирующего кода.
Исходный код проекта: компоненты, модули и так далее. Структура директории src
может быть произвольной.
Инструкции по работе с учебным репозиторием.
Советы и инструкции по внесению изменений в учебный репозиторий.
Все остальные файлы в проекте являются служебными. Пожалуйста, не удаляйте и не изменяйте их самовольно. Только если того требует задание или наставник.