Скрипт не нужно устанавливать в директорию с проектом. Если вдруг установите в проект, удалите сразу после того, как воспользуетесь.
Запушив скрипт на проверку экзаменаторам, вы можете усложнить жизнь всей группе.
Рекомендую один раз установить скрипт в какую-нибудь внешнюю директорию (типа глобальная установка), чтобы затем использовать его для в любых прочих проектах. Я советую его класть в директорию пользователя /~ .
Скрипт точно работает в bash на маках. Насчёт остальных ОС и терминалов не уверен.
Ниже пример установки скрипта в директорию /~ :
git clone <ссылка на репозиторий> ~/cheat-script
В таком случае, находясь в другой директории (например, корневой директории проекта), скрипт можно будет спокойно вызвать:
node ~/cheat-script/init-express.js <username> <password> <dbname>
где в качестве аргументов передаются имя пользователя бд, его пароль и название базы.
Создаёт скелет express-приложения (см. пример в example), подключённого в бд с указанным именем пользователя, паролем и названием самой бд.
Если детальнее, скрипт:
- Устанавливает большинство необходимых зависмосьтей (express, hbs redis-сессии, sequelize и пр.). Список устанавливаемых пакетов можно посмотреть тут;
- Создаёт
.gitignoreдля Node; - Создаёт файловую структуру проекта наподобие той, что нам показывал Семён;
- Создаёт
.sequelizerc, соответствующий нашему проекту; - Инициализирует
sequelize(создаётconfig-файл и все директории) вsrc/db; - Подстраивает
database.jsonпод наши нужды (т.е. заполняет имя пользователя, пароль и название базы, которые укажете); - Создаёт hbs'ки с подключённым bootstrap'ом;
- Создаёт
app.js, в котором подключены сессии, логгер и всякое прочее; - Создаёт базовый роут.
С роутами связана особенность, которая по-хорошему должна упрощать жизнь.
Все роуты из директории routes подключаются в app.js единожды:
const routes = require(path.join(process.env.PWD, 'src', 'routes'));
и затем их можно использовать в app.js следующим образом:
app.use('/address', routes.address); // для роута address.js или address.router.js
Ничего в app.js кроме вышеуказанной строки подключать не будет нужно.
Это происходит благодаря файлу index.js, его трогать и менять не нужно.
Скрипт:
- Не создаёт ничего в postgres'е (юзера и базу нужно делать руками);
- Не запускает сервер redis;
- Много чего ещё он не делает, поэтому будьте внимательны.