Эта история является частью моей задачи TODO: создание приложения TODO с различными интерфейсными фреймворками. Но прежде чем я захочу начать с внешней части, я также хотел иметь работающую внутреннюю часть. Итак, эта история о бэкэнд части:

  • Бэкенд-язык/фреймворк
  • База данных
  • Хостинг

NestJS

В качестве бэкенда я выбрал NestJS. Это строго типизированный фреймворк NodeJS с использованием TypeScript, и они смоделировали его по образцу Angular. Как разработчик Angular, я чувствую себя с NestJS как дома.

Prisma.io

Моему приложению TODO также нужна база данных. Для этого я выбрал Prisma.io. На первый взгляд Prisma выглядит как обычная база данных ORM. Но главные преимущества

  • GraphQL готов
  • Бесплатные размещенные базы данных

И бесплатная размещенная база данных — это то, что мне было нужно. Он входит в бесплатный уровень Prisma Cloud.

Цайт сейчас

Теперь мне все еще нужно разместить свой бэкэнд. Вот тут и приходит на помощь Zeit Now. Zeit — это комплексное решение для статического развертывания и развертывания JAMstack для команд, одержимых производительностью. Основные преимущества Zeit Now:

Итак, Zeit поддерживает NodeJS, и это то, что мне нужно, потому что NestJS основан на NodeJS.

Настройка NestJS и развертывание в Zeit

Сначала установите NestJS и запустите новое приложение.

Это даст нам стандартный проект NestJS с контроллером по умолчанию. Далее нужно установить Zeit Now и развернуть.

Теперь начинается «сложная» часть: развертывание. Сначала перейдите в корневую папку нового приложения NestJS. Для развертывания в Now вы можете просто использовать

Вот так просто. Команда Now будет искать файл конфигурации: now.json. Если файла конфигурации нет, он создаст экземпляр в Zeit Now и будет использовать имя папки, откуда был вызван Now, в качестве имени экземпляра.

Прежде чем вы попробуете это, я должен вам сказать, что это не сработает для приложений NestJS.

Чтобы заставить его работать для NestJS, вам нужно

  • создать и настроить now.json в корневой папке проекта
  • создать приложение NestJS для производства
  • развернуть версию сборки сейчас

Настроить сейчас.json

Создайте приложение NestJS и разверните сейчас

Теперь мы можем создать приложение и развернуть его сейчас.

Если все прошло хорошо, Now предоставит вам URL вашей конечной точки, обычно в формате ‹имя приложения›.‹zeit username›.now.sh.

Создание и развертывание базы данных Prisma

Перейдите в корень вашего проекта и установите пакеты для Prisma.

Модель базы данных

Прежде чем мы сможем использовать базу данных, мы должны создать модель базы данных. Создайте файл с именем database.prisma (конечно, вы можете использовать любое имя файла) и добавьте модель

Настроить Призму

Далее мы можем настроить Prisma. Нам нужно указать, на какой конечной точке модель должна быть развернута (и может быть использована). Создайте файл с именем prisma.yml

Как видите, нам все еще нужно определить конечную точку:

  • ‹регион›: это может быть us1 или eu1
  • ‹имя пользователя prisma›: войдите в свою панель инструментов prisma и найдите свое имя пользователя в URL-адресе: https://app.prisma.io/‹имя пользователя›/
  • ‹имя базы данных›: любое имя базы данных, которое вы хотите использовать
  • ‹стадия›: это может быть prod или dev

Так например: https://eu1.prisma.sh/foobar-723f27/testdatabase/dev

Развертывание модели базы данных Prisma и создание файлов .ts

Далее мы готовы развернуть модель на Prisma.io и сгенерировать файлы .ts.

Нам нужны сгенерированные файлы .ts в нашем приложении NestJS.

Итак, после создания prisma мы можем импортировать клиентскую библиотеку Prisma.

Бэкэнд TODO

Вы можете проверить мой бэкенд, который я использую для задачи TODO:



Дополнительная информация

Документация NestJS
Документация Zeit
Модель данных Prisma
Клиент Prisma

Это все на данный момент.

Вы можете найти меня на :
- linkedin: https://www.linkedin.com/in/fransjoleihitu/
- GitHub: https://github.com/fransyozef/
- Instagram: https://www.instagram.com/thehangrycoder/