Node.js Api Starter Kit-это шаблон проекта для создания Node.js Backend Applications, оптимизированные для инфраструктуры без сервера, таких как функции Google Cloud, AWS Lambda, функции Azure и т. Д. Используйте его в качестве сервера API для вашего приложения фронт-конечного.
local , dev , test и prodЭтот проект был загружен с начальным набором Node.js API. Обязательно присоединитесь к нашему каналу Discord для помощи.
├── .build
├── .vscode - Настройки VSCODE, включая фрагменты кода, рекомендуемые расширения и т. Д.
├── api - облачная функция для обработки запросов API с использованием graphql.js
├── auth - Аутентификация и промежуточное программное обеспечение сеанса
├── core - общие модули применения (электронная почта, ведение журнала и т. Д.)
├── db - клиент базы данных для PostgreSQL с использованием Knex
├── emails - Шаблоны электронной почты для транзакционных электронных писем с использованием руля
├── - env - переменные среды для local , dev , test и prod
├── migrations - миграция схемы базы данных (Cloud SQL, Knex)
├── - сценарии развертывания, оболочка реплики и т scripts Д.
├── test - модульные тесты и тесты
├── - views HTML с использованием руля
└── ... - Добавьте больше облачных функций, таких как worker , notifications и т. Д.
git clone -o seed https://github.com/kriasoft/node-starter-kit.git .local , dev , test и prod среды ( ./env ).yarn installyarn db:createyarn start , оно станет доступным по адресу http: // localhost: 8080. Используйте переменную среды APP_ENV для выполнения сценариев для разных сред, например:
$ APP_ENV=test yarn db:migrate
$ APP_ENV=test yarn start
ВАЖНО : Убедитесь, что VSCODE использует версии TypeScript и Eslint Workspace.
yarn start - запускает приложение в режиме разработки на http://localhost:8080yarn build - компилируется и связывает приложение для развертыванияyarn lint - проверка кода с использованием Eslintyarn tsc - проверка кода с использованием компилятора TypeScriptyarn test - запустите модульные тесты с шутом, Supertestyarn repl - подключитесь к базе данных, используя Shell Knex Repl Shellyarn psql - подключитесь к базе данных с помощью PostgreSQL CLIyarn db:create - создать новую базу данныхyarn db:version - проверьте текущую версию базы данныхyarn db:migrate - мигрировать схему базы данных в последнюю версиюyarn db:rollback - откат Последняя миграцияyarn db:seed - база данных семян с образцом / эталонными даннымиyarn db:reset -повторно применить последний файл миграции схемы БДyarn update-types -генерируйте сильно напечатанные модели данных из схемы базы данных Необязательно установите APP_ENV на local (по умолчанию), dev , test или prod перед запуском этих сценариев.
Для каждого стороннего поставщика идентификаций, который должен быть включен для вашего приложения, вам необходимо будет получить учетные данные приложения, часто называемые идентификатором/секретом клиента.
http://localhost/auth/google/return в качестве URL обратного вызоваGOOGLE_CLIENT_ID , GOOGLE_CLIENT_SECRET argine Environment, найденные в ./env/.env.* Для каждой среды, которая вам нужна. Оттуда, посещение http://localhost:8080/auth/google (или, открытие его во всплывающем окне) инициирует поток входа через Google.
http://localhost/auth/facebook/return в качестве URL -адреса обратного вызова для потока входа в системуFACEBOOK_APP_ID , FACEBOOK_APP_SECRET переменные, найденные в файлах env/.env.* Для каждой среды, которая вам нужна. Оттуда, посещение http://localhost:8080/auth/facebook (или, открытие его во всплывающем окне) инициирует поток входа через Facebook.
Сценарий развертывания ( yarn deploy ) опирается на инструмент Google Cloud Cli ( gcloud ), который вы можете скачать отсюда. Для рабочих процессов CI/CD вам может понадобиться изображение Docker, подобное этому.
gcloud auth login - авторизовать инструмент Google Cloud SDK (CLI) для использования вашей учетной записи Google.
Создайте новый проект GCP для вашего приложения с идентификаторами, такими как example для производства, и example-test для среды Test / QA. Убедитесь, что API API Cloud Build API и облачные функции включены в настройки вашего проекта GCP здесь.
Создайте экземпляр базы данных Cloud SQL здесь, в том же регионе, где нужно развернуть ваше приложение. Использование микро -экземпляра Cloud SQL с 0,6 ГБ оперативной памяти должно быть нормально для тестирования и веб -сайтов с низким трафиком.
Убедитесь, что GOOGLE_CLOUD_PROJECT , GOOGLE_CLOUD_REGION , PGDATABASE , PGUSER и другие переменные среды правильно установлены для среды развертывания целевого развертывания (например, /env/.env + /env/.env.prod для производства).
Наконец, составьте и разверните приложение, работая:
yarn build - компилирует приложение в папку .buildAPP_ENV=<env> yarn db:migrate - Migrate Database (Schema) в последнюю версиюAPP_ENV=<env> yarn deploy - развертывает приложение для Google Cloud Functions (GCF) Где <env> является целевой средой, например APP_ENV=prod yarn deploy .
yarn set version latest - бурная пряжа до последней версииyarn upgrade-interactive -модули Update Node.js (зависимости)yarn pnpify --sdk vscode -TypeScript, Eslint и более красивые настройки в VSCODE Любой и все могут внести свой вклад. Начните с проверки списка открытых проблем, отмеченных разыскиваемой помощью. Однако, если вы решите принять участие, пожалуйста, найдите время, чтобы просмотреть руководящие принципы.
Copyright © 2016-Cresent Kriasoft. Этот исходный код лицензирован по лицензии MIT, найденной в файле лицензии.
Сделано с ♥ Константином Таркусом (@koistya, Blog) и участниками.