Хранить лиды на посадочной странице без внутреннего сервера в Nuxt

Лиды посадочных страниц помогают бизнесу собирать информацию о пользователях. Эта информация дает компаниям лучшее понимание демографической ситуации, заинтересованной в их продукте.

Что мы будем создавать

В этом посте мы обсудим создание целевой страницы для сбора и хранения контактной информации пользователя в приложении Nuxt. Это приложение не требует пользовательского бэкенд-сервера.

URL Github:

https://github.com/Iheanacho-ai/nuxt-email-leads

Предварительные условия

Чтобы получить максимальную пользу от этой статьи, нам необходимо следующее:

  • Базовое понимание CSS, JavaScript и Vue.js.
  • Понимание Nuxt.js поможет в этом руководстве, но не является обязательным.
  • Docker Desktop установлен на компьютере, выполните команду docker -v, чтобы проверить, установлен ли у нас docker desktop; если нет, установите его из документации Get Docker
  • Экземпляр Appwrite запущен на нашем компьютере, ознакомьтесь с этой статьей, чтобы создать локальный экземпляр Appwrite; мы будем использовать мощную функцию базы данных Appwrite для этого проекта## Настройка нашего приложения Nuxt

Nuxt — это open-source Vue.js frontend development framework, который позволяет нам создавать универсальные веб-приложения, статически рендерить Vue.js приложения без использования сервера, а также позволяет реализовать в нашем проекте такие функции, как рендеринг на стороне сервера, генерация статических сайтов и т.д.

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

ПРИМЕЧАНИЕ: Для выполнения этих команд используйте терминал Powershell.

    npm init nuxt-app <project-name>

    #or

    npx create-nuxt-app <project-name>

    #or

    yarn create nuxt-app <project-name>
Войти в полноэкранный режим Выйти из полноэкранного режима

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

    Project name: google-analytics-nuxt
Войти в полноэкранный режим Выйти из полноэкранного режима
    Programming language: JavaScript
Войти в полноэкранный режим Выход из полноэкранного режима
    Package manager: Npm
Войти в полноэкранный режим Выход из полноэкранного режима
    UI framework: None
Войти в полноэкранный режим Выход из полноэкранного режима
    Testing framework: None
Войти в полноэкранный режим Выход из полноэкранного режима
    Rendering mode: Universal (SSR/SSG) 
Войти в полноэкранный режим Выход из полноэкранного режима

    Deployment target: Server (Node.js hosting)
Войти в полноэкранный режим Выйти из полноэкранного режима

После этого выполните эти команды.

    cd <project name>    
    npm run dev
Войти в полноэкранный режим Выйти из полноэкранного режима

Это изменит каталог на наш проект и запустит его в браузере. Чтобы увидеть наше приложение, перейдите по адресу http://localhost:3000/.

Установка Appwrite

Appwrite — это сквозное серверное решение с открытым исходным кодом, которое позволяет разработчикам быстрее создавать приложения.

Чтобы использовать Appwrite в нашем приложении Nuxt, мы установим Appwrite client-side SDK для веб-приложений.

    npm install appwrite
Вход в полноэкранный режим Выход из полноэкранного режима

Создание нового проекта Appwrite

Во время создания экземпляра Appwrite мы указали, на каком имени хоста и порту мы видим нашу консоль. По умолчанию это localhost:80.

Перейдите на localhost:80 и создайте новую учетную запись, чтобы увидеть нашу консоль.

На нашей консоли есть кнопка Создать проект. Нажмите на нее, чтобы начать новый проект.

После создания проекта появится приборная панель нашего проекта. В верхней части страницы находится панель настроек. Нажмите на панель настроек, чтобы получить доступ к ID проекта и конечной точке API.

Мы копируем ID проекта и конечную точку API, которые нам нужны для инициализации Appwrite Web SDK.

Мы создаем файл init.js в корневом каталоге нашего проекта для инициализации Appwrite Web SDK со следующим кодом.

    import { Appwrite } from 'appwrite';
    export const sdk = new Appwrite();
    sdk
      .setEndpoint('http://localhost/v1') // Replace this with your endpoint
      .setProject('projectID'); // Replace this with your ProjectID
Вход в полноэкранный режим Выход из полноэкранного режима

Создание коллекции и атрибутов в базе данных Appwrite

В веб-консоли Appwrite мы нажимаем на Database в левой части приборной панели.

Мы создаем коллекцию на вкладке базы данных, нажав на кнопку Добавить коллекцию. Это действие перенаправляет нас на страницу разрешений.

На уровне коллекции мы хотим назначить доступ на чтение и доступ на запись со значением role:all. Позже мы сможем изменить эти разрешения, чтобы контролировать, кто имеет доступ на чтение или запись в нашу базу данных.

Справа на странице Разрешения мы копируем ID коллекции, который нам нужен для выполнения операций над документами коллекции.

Далее мы переходим на вкладку Атрибуты, чтобы создать свойства, которыми должен обладать документ.

Мы создаем атрибут email — emailAddress.

Создание нашей посадочной страницы

В нашем файле index.vue мы создаем целевую страницу для сбора предложений по электронной почте. Эта целевая страница состоит из элемента input для ввода пользователями своих адресов электронной почты. Мы храним эти адреса электронной почты в нашей базе данных Appwrite.

Приведенный ниже код создает пользовательский интерфейс целевой страницы.

https://gist.github.com/Iheanacho-ai/7d4178284b85dd9f9008412a62769e36

Добавление взаимодействия ввода с базой данных

В секции script файла index.vue мы импортируем экземпляр sdk в наш файл.

    <script>
      import {sdk} from '../init';
    </script>
Вход в полноэкранный режим Выход из полноэкранного режима

Далее мы создаем переменную состояния emailAddress для хранения значения нашего элемента input.

    <script>
      import {sdk} from '../init';
      export default {
        name: 'IndexPage',
        data(){
          emailAddress: ''
        },
      }
    </script>
Вход в полноэкранный режим Выход из полноэкранного режима

Далее мы создадим handleEmailAddress для хранения адресов электронной почты в нашей базе данных Appwrite.

    <script>
      import {sdk} from '../init';
      export default {
        name: 'IndexPage',
        data(){
          emailAddress: ''
        },
        methods: {
          handleEmailAddress: async function(){
            try {
              await sdk.database.createDocument(collectionID', 'unique()',{
                "emailAddress": this.emailAddress
              })
              this.emailAddress= '',
              alert("Email saved successfully!")
            } catch (error) {
              console.log(error)
            }
          }
        }
      }
    </script>
Вход в полноэкранный режим Выход из полноэкранного режима

В приведенном выше блоке кода функция handleEmailAddress делает следующее:

  • Создает новый документ в базе данных с помощью функции Appwrite createDocument; эта функция получает ID коллекции, который мы сохранили со страницы Permissions, параметр unique(), который указывает, что мы хотим получить уникальный ID документа, и значения атрибутов в качестве параметров.
  • Предупреждает нас об успешном сохранении документа и затем очищает информацию в нашей переменной состояния emailAddress.
  • Записывает любую возникшую ошибку в консоль.

Затем мы передаем переменную emailAddress в директиву v-model на элементе input и функцию handleEmailAddress в слушатель событий кнопки Add email address @click.

    <input 
      type="text" 
      v-model="emailAddress"
    />
    <button type="button" @click="handleEmailAddress">Add email address</button>
Вход в полноэкранный режим Выход из полноэкранного режима

Вот как выглядит наш файл index.vue.

https://gist.github.com/Iheanacho-ai/f988c7cfcc14cd7cf701708deff15c93

Введите адрес электронной почты, чтобы увидеть его сохранение в базе данных.

Заключение

В этой статье мы рассмотрели использование Appwrite для создания данных в базе данных. Мы создали простую страницу генерации лидов в приложении Nuxt.

Ресурсы

Вот некоторые ресурсы, которые могут быть полезны:

  • Начало работы с Appwrite для веб
  • API базы данных
  • Что такое Appwrite и как его эффективно использовать

Оцените статью
devanswers.ru
Добавить комментарий