Как создать и развернуть приложение Nuxt?

How to build and deploy a Nuxt application_
How to build and deploy a Nuxt application_

Nuxt.js – это фреймворк с открытым исходным кодом, созданный на основе Vue.js, Nitro и Vite, который позволяет разрабатывать веб-приложения.

Вдохновленный Next.js (фреймворк React для рендеринга на стороне сервера), Nuxt.js позволяет разработчикам создавать быстрые веб-приложения, применяя различные режимы рендеринга.

Выпущенный в 2016 году Nuxt.js получил широкое признание среди разработчиков благодаря своей философии, ориентированной на разработчиков, и богатым возможностям.

Преимущества Nuxt.js

Nuxt.js обладает рядом преимуществ, которые делают его привлекательным выбором для разработки на Vue.js:

Универсальный рендеринг

Nuxt.js управляет тем, как ваше веб-приложение отображается у пользователя. Он начинает с рендеринга начальной страницы на сервере, что делает ее загрузку очень быстрой, особенно для людей с медленным интернет-соединением.

Это поможет поисковым системам быстрее просматривать ваш сайт, что приведет к улучшению SEO.

Nuxt.js плавно переключается на клиентский рендеринг (SPA) для навигации между страницами внутри вашего приложения. Это обеспечивает быстроту и отзывчивость, как и полагается современному сайту.

Оптимизированная производительность за счет гидратации и расщепления кодов

Nuxt 3 позволяет осуществлять выборочную гидратацию, то есть сегменты состояния приложения гидратируются на стороне клиента для ускорения загрузки первой страницы и улучшения пользовательского опыта, что очень полезно для приложений с огромным деревом состояний и множеством частей.

Аналогично Next.js, Nuxt автоматически разбивает файлы на более мелкие пакеты в зависимости от маршрутов.

Таким образом, браузеру требуется от сервера только код, относящийся к текущему представлению, что значительно сокращает время загрузки страницы пользователем.

Это означает, что используется меньше ресурсов полосы пропускания и улучшается качество работы пользователей.

Встроенная маршрутизация

Nuxt.js по умолчанию обрабатывает маршруты с помощью файловой маршрутизации, что упрощает навигацию и управление маршрутами в вашем приложении.

Он также позволяет динамически настраивать маршруты для более сложных сценариев маршрутизации.

Маршруты API

Nuxt.js позволяет не создавать целый отдельный сервер для простых задач! В нем есть встроенные ярлыки, называемые API-маршрутами.

Маршруты API могут обрабатывать данные во время рендеринга на стороне сервера, поддерживая RESTful и GraphQL API. Это делает ваше приложение более быстрым и помогает поисковым системам лучше понять содержимое вашего приложения.

Ограничения Nuxt.js

Хотя Nuxt.js предлагает мощный опыт разработки, следует учитывать некоторые ограничения:

Кривая обучения

Nuxt.js представляет концепции, которые отличаются от традиционной разработки на Vue.js. Новичкам в Nuxt.js требуется время на адаптацию к его специфической архитектуре и особенностям.

Nuxt также предлагает обширную экосистему инструментов, библиотек и плагинов. Ознакомление с этими возможностями может усугубить процесс обучения.

Ограниченная экосистема

В отличие от других крупных фреймворков, таких как React и Angular, Nuxt относительно молод. Как следствие, его экосистема сторонних библиотек и плагинов продолжает расти.

Вам придется создавать индивидуальные решения для выполнения определенных требований в конкретных ситуациях.

Сложность рендеринга на стороне сервера

Хотя рендеринг на стороне сервера (SSR) является мощной функцией Nuxt.js, он может усложнить разработку приложений. По сравнению с более простыми методами рендеринга, SSR имеет более сложную кривую обучения.

Кроме того, эффективная реализация SSR требует тщательного планирования и управления получением данных и состоянием приложения.

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

Создание и развертывание приложения Nuxt.js на Back4app

Мы создадим приложение для управления контактами, чтобы лучше понять, как создать и развернуть приложение Nuxt с помощью Back4App.

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

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

Этот процесс станет проще с помощью ИИ-агента Back4App.

Для создания передней части проекта мы будем использовать Nuxt.js для создания пользовательского интерфейса приложения. Затем мы соединим переднюю и заднюю части с помощью Parse SDK перед развертыванием передней части Nuxt с помощью Back4App Containers.

Давайте начнем.

Создание бэкенда для вашего приложения Nuxt.js

Первый шаг к созданию приложения Nuxt – это подготовка бэкенда.

Чтобы начать создавать бэк-энд для приложения “Контакты”, перейдите на сайт Back4App, войдите в систему и создайте новое приложение, нажав кнопку “Build New App“.

Приборная панель приложений Back4app

Выберите опцию “Backend as a Service“, которую вы увидите после создания нового приложения, как показано на рисунке ниже.

Back4app Baas и CaaS

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

B4A DBs

После нажатия кнопки “CREATE“, Back4app потребуется немного времени, чтобы настроить ваше приложение, включая базу данных.

Когда все будет готово, вы автоматически перейдете к своему приложению, как показано на рисунке ниже.

Браузер Back4app.

Чтобы структурировать структуру базы данных PostgreSQL, которую вы будете использовать для приложения, перейдите в AI Agent компании Back4app и введите следующий запрос.

Create database tables in my Back4app app; do you need me to provide any information?
Back4app AI Agent Prompt

Чтобы настроить базу данных, AI Agent создаст список того, что ему необходимо. В этот список войдут такие детали, как уникальные ключи для вашего приложения и структура данных (схема).

После того как вы передали AI Agent ключи вашего приложения, сообщите ему, как должна выглядеть схема вашей базы данных. Она должна быть похожа на приведенную ниже для создаваемого нами контактного приложения:

1. Contact Class:
Class Name: Contact

Fields:
objectId (String, Automatically generated by Back4App).
name (String, Required)
email (String, Required)
phone (String, Required)
address (String, Required)
company (String, Optional)

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

Back4app Browser

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

Populate my contact database with some test data with around 10 test contacts with variations in their information.
Журналы Back4app

Теперь у вас есть тестовые данные, с которыми можно работать.

База данных Back4app заполнена

Создание облачного кода

Функция Cloud Code компании Back4App позволяет выполнять пользовательский JavaScript-код непосредственно на серверах Back4App.

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

Теперь у вас есть тестовая база данных, заполненная контактами, и настало время реализовать функции системы управления контактами.

В этом разделе вы узнаете, как создать облачный код для реализации определенных функций вашего приложения, таких как:

  • Просмотр всех контактов
  • Создание новых контактов
  • Удаление контактов

Вы будете реализовывать эти функции с помощью Back4App AI Agent. Давайте приступим.

Чтобы получить все книги из библиотеки, предоставьте агенту Back4App AI следующий запрос для генерации необходимого облачного кода.

Develop a cloud code function named "getContacts" to retrieve all contacts 
from the database. The function should return an array containing objects
representing a contact instance with its associated keys and values.
Back4app AI Agent Prompt

Далее вы также поручите агенту Back4App AI Agent создание новых контактов, передав ему следующее приглашение:

Generate a cloud code function named “createContact” that takes in the necessary arguments to create a new contact in the Contact class.
Back4app AI Agent Prompt

Наконец, вы также предоставите агенту Back4App AI Agent следующий запрос для создания функции удаления контактов из базы данных.

Create a cloud code function "deleteContact" that deletes a contact from the Contact class based on the provided "objectId." If the deletion is successful, return a message indicating success. If there's an error, return an error message.
Back4app AI Agent Prompt

Чтобы проверить, правильно ли Агент сгенерировал ваши облачные функции, просмотрите файл main.js, расположенный в конце этого навигационного пути.

Back4app dashboard → Cloud Code → Функции и веб-хостинг → cloud → main.js.

Облачный код Back4app

Вы должны увидеть три функции, которые вы определили, в том же файле main.js, чтобы убедиться, что ваши облачные функции были созданы правильно.

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

Мы создадим фронт-энд для взаимодействия со всеми функциями облачного кода, которые мы создали. Мы создадим фронт-энд с помощью Nuxt.js.

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

npx nuxi init b4a_nuxt_app
cd b4a_nuxt_app
npm install

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

После выполнения вышеуказанных команд в терминале вы установите несколько пакетов npm, которые помогут стилизовать ваше приложение. Чтобы установить эти пакеты, выполните в терминале последовательно следующие команды npm:

npm install sass
npm install -D tailwindcss postcss autoprefixer

Приведенные выше строки кода установят SASS, препроцессор CSS, и TailwindCSS, полезный CSS-фреймворк. Вы будете использовать эти пакеты для быстрого создания стиля вашего приложения.

Далее вы настроите TailwindCSS в своем приложении, выполнив следующую команду:

npx tailwindcss init

Приведенный выше код создает файл tailwind.config.js в корневом каталоге вашего приложения Nuxt.

Этот файл tailwind.config.js является центральной точкой конфигурации для вашей интеграции Tailwind CSS в Nuxt.js. Он позволяет настраивать различные аспекты Tailwind CSS в соответствии с требованиями вашего проекта.

Откройте приложение в выбранном вами текстовом редакторе (VSCode, Eclipse, Sublime Text). Перейдите к файлу tailwind.config.js и измените его структуру так, чтобы она выглядела как блок кода ниже:

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./components/**/*.{js,vue,ts}",
    "./layouts/**/*.vue",
    "./pages/**/*.vue",
    "./plugins/**/*.{js,ts}",
    "./app.vue",
    "./error.vue",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};

Массив content в приведенном выше блоке кода содержит пути к файлам, которые Tailwind CSS будет отслеживать для генерации своих служебных классов.

Затем создайте папку assets в корневом каталоге приложения. В этой папке создайте файл main.scss, чтобы добавить стили в ваше приложение. Вставьте приведенный ниже код в файл main.scss:

/* main.scss */
@import url("<https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap>");
@import url("<https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap>");

@tailwind base;
@tailwind components;
@tailwind utilities;

body {
  background-color: #f2f2f2;
}

.montserrat {
  font-family: "Montserrat", sans-serif;
}

.roboto {
  font-family: "Roboto", sans-serif;
}

Приведенный выше блок кода импортирует два разных Google Fonts, интегрирует Tailwind CSS для стилизации элементов, устанавливает светло-серый цвет фона для вашего веб-приложения и определяет пользовательские классы для эффективного применения импортированных шрифтов.

Этот файл main.scss обеспечивает прочную основу для создания визуального стиля вашего веб-приложения.

В файл nuxt.config.ts, содержащий конфигурации для вашего приложения Nuxt, вставьте следующий код:

// nuxt.config.ts
export default defineNuxtConfig({
  devtools: { enabled: true },
  postcss: {
    plugins: {
      tailwindcss: {},
      autoprefixer: {},
    },
  },
  css: ["~/assets/main.scss"],
  ssr: false,
});

В файле конфигурации Nuxt вы определили файл main.scss как единственный CSS-файл, который будет использовать ваше приложение Nuxt. Вы также отключили рендеринг на стороне сервера для вашего приложения Nuxt.

Поскольку Nuxt автоматически обрабатывает маршрутизацию с помощью системы маршрутизации на основе файлов, и мы закончили настройку приложения, мы можем перейти к созданию различных веб-страниц.

Чтобы создать пользовательский интерфейс для этого приложения, мы создадим три страницы в папке pages в корне проекта. Этими страницами будут:

  • index.vue: Это главная страница, представляющая назначение приложения.
  • contactForm.vue: Эта страница позволяет пользователям создавать и сохранять новые контакты в базе данных.
  • contactsList.vue: На этой странице перечислены все контакты, хранящиеся в базе данных.

Теперь в файл index.vue вставьте следующий код:

// index.vue
<template>
  <div class="welcome montserrat flex flex-col gap-8 items-center mt-10">
    <h1 class="text-4xl">Welcome to {{ appName }}!</h1>
    <p class="text-[#888888] font-md text-md w-1/2">
      This application helps you manage your contacts. You can view existing
      contacts, add new ones, and keep your contact information organized.
    </p>
    <NuxtLink to="/contactForm">
      <button
        class="px-4 py-2 hover:bg-[#333333] hover:text-white rounded-lg font-medium"
      >
        Add Contact
      </button>
    </NuxtLink>
  </div>
</template>

<script setup>
const appName = "Contact Book";
</script>

<style scoped>
.welcome {
  text-align: center;
  padding: 2rem;
}
</style>

Этот блок кода создает страницу приветствия для вашего приложения для управления контактами.

В нем отображается заголовок, описание назначения приложения и кнопка для перехода на страницу с контактной формой. В блоке кода также определены классы TailWind для стилизации приложения.

Кроме того, в файл contactForm.vue вставьте следующий код:

<template>
  <div>
    <p class="montserrat text-2xl font-medium text-center">
      Fill the form below to create a contact
    </p>
    <form
      @submit.prevent="createContact"
      class="flex flex-col gap-8 items-center mt-10"
    >
      <input
        v-model="contact.name"
        type="text"
        placeholder="Name"
        required
        class="w-1/2 p-3 hover:shadow-lg outline-none montserrat"
      />
      <input
        v-model="contact.email"
        type="email"
        placeholder="Email"
        required
        class="w-1/2 p-3 hover:shadow-lg outline-none montserrat"
      />
      <input
        v-model="contact.phone"
        type="tel"
        placeholder="Phone"
        required
        class="w-1/2 p-3 hover:shadow-lg outline-none montserrat"
      />
      <input
        v-model="contact.address"
        type="text"
        placeholder="Address"
        required
        class="w-1/2 p-3 hover:shadow-lg outline-none montserrat"
      />
      <input
        v-model="contact.company"
        type="text"
        placeholder="Company"
        class="w-1/2 p-3 hover:shadow-lg outline-none montserrat"
      />
      <div>
        <button
          class="px-4 py-2 hover:bg-[#333333] hover:text-white rounded-lg font-medium"
          type="submit"
        >
          Submit
        </button>
      </div>
      <p v-if="message" :class="{ error: isError }">{{ message }}</p>
    </form>
  </div>
</template>

<script setup>
import { ref } from "vue";

const contact = ref({
  name: "",
  email: "",
  phone: "",
  address: "",
  company: "",
});
const message = ref("");
const isError = ref(false);

</script>

<style>
.error {
  color: red;
}
</style>

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

Элемент формы собирает контактные данные (имя, электронная почта, телефон, адрес, компания) с помощью различных полей ввода.

Каждое поле ввода связано со свойством объекта контакта(v-модель) и использует соответствующие типы ввода для проверки.

Кнопка отправки вызовет функцию createContact, которую мы реализуем в следующем разделе. Область сообщений также будет отображать обратную связь (успех или ошибка) на основе переменных message и isError.

Этот блок кода использует ref в Vue для создания 3 реактивных переменных:

  • контакт: Сохраняет введенную контактную информацию.
  • сообщение: Содержит сообщения обратной связи для пользователя.
  • isError: Указывает, является ли сообщение ошибкой.

Простое правило стиля определяет внешний вид сообщений об ошибках с помощью класса .error в блоке кода.

Также в файле contactsList.vue вставьте следующий код:

<template>
  <div class="px-8">
    <p class="montserrat text-3xl font-medium mb-10">Your Contacts</p>
    <div class="grid grid-cols-3 gap-5 items-center justify-center">
      <div
        v-for="contact in contacts"
        :key="contact.objectId"
        class="contact montserrat bg-[#FFFFFF] hover:shadow-lg mb-4 rounded-lg 
				        flex flex-col gap-3 p-3 w-11/12 items-center"
      >
        <p class="text-lg">Name: {{ contact.name }}</p>
        <p class="text-lg">Email: {{ contact.email }}</p>
        <p class="text-lg">Phone: {{ contact.phone }}</p>
        <p class="text-lg">Address: {{ contact.address }}</p>
        <p class="text-lg">Company: {{ contact.company }}</p>
        <div class="mt-5">
          <button
            @click="deleteContact(contact.objectId)"
            class="px-4 py-2 hover:bg-[#333333] hover:text-white rounded-lg font-medium"
          >
            Delete
          </button>
        </div>
      </div>
    </div>
  </div>
</template>

<script setup>
import { ref, onMounted } from "vue";

const contacts = ref([]);
</script>

Приведенный выше блок кода отображает список контактов в вашем приложении. Вот ключевые моменты:

Блок кода создает раздел “Ваши контакты” и использует отзывчивый макет сетки (3 колонки) для отображения контактов.

Он просматривает массив контактов с помощью v-for и представляет информацию о каждом контакте (имя, электронная почта, телефон, адрес, компания).

У каждой записи контакта есть кнопка “Удалить”, которая запускает функцию deleteContact, которую мы реализуем позже.

Блок кода использует реактивный массив(contacts) для хранения списка контактов. Это обеспечивает динамическое обновление пользовательского интерфейса при изменении данных. Массив contacts будет хранить данные, которые вы извлекли из базы данных Back4app

Вставьте приведенный ниже код в файл app.vue в корневом каталоге, чтобы включить маршруты ко всем этим страницам.

<template>
  <div>
    <NuxtLayout>
      <header class="flex justify-between p-8 roboto font-light">
        <NuxtLink to="/">
          <p class="text-2xl">Contact Book</p>
        </NuxtLink>

        <nav class="flex gap-5 text-md">
          <NuxtLink to="/contactsList" class="hover:text-[#888888]"
            >Contacts</NuxtLink
          >
          <NuxtLink to="/contactForm" class="hover:text-[#888888]"
            >Add Contact</NuxtLink
          >
        </nav>
      </header>
      <main>
        <NuxtPage />
      </main>
    </NuxtLayout>
  </div>
</template>

Блок кода определяет общую компоновку приложения Nuxt с компонентом компонентом.

Блок кода содержит горизонтальное навигационное меню со ссылками на страницу contactsList.vue и contactForm.vue.

Блок кода также включает в себя компонент компонент, ключевой компонент Nuxt.js, который динамически отображает содержимое текущей страницы.

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

Соединение фронтэнда и бэкэнда вашего приложения

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

Parse SDK соединяет ваше внешнее приложение (пользовательский интерфейс) и бэкэнд Back4App, позволяя вам взаимодействовать с базами данных и облачными функциями Back4App.

Чтобы установить Parse SDK, выполните следующую команду в терминале в корневом каталоге:

npm install parse

После установки необходимо инициализировать Parse, получив следующую информацию:

  • Идентификатор приложения
  • Ключ JavaScript
  • URL-адрес сервера Back4app

Вы можете получить эту информацию, перейдя в раздел Security & Keys на панели управления вашего приложения Back4app. Храните свой App ID и JavaScript Key в безопасном месте в вашем приложении.

Теперь измените файл app.vue, чтобы инициализировать Parse в вашем приложении:

<template>
<!--   Previous Content -->
</template>

<script setup>
import Parse from 'parse';

// Initialize Parse SDK
Parse.initialize('YOUR_APP_ID', 'YOUR_JAVASCRIPT_KEY');
Parse.serverURL = '<https://parseapi.back4app.com>';
</script>

Также измените файлы contactForm.vue и contactsList.vue, чтобы подключить функции облачного кода к фронт-энду вашего приложения.

На странице contactForm.vue вставьте следующий код:

<template>
<!--   Previous Content -->
</template>

<script setup>
import { ref } from 'vue';
import Parse from 'parse';

const contact = ref({
  name: '',
  email: '',
  phone: '',
  address: '',
  company: '',
});
const message = ref('');
const isError = ref(false);

const createContact = async () => {
  try {
    await Parse.Cloud.run('createContact', { ...contact.value });
    message.value = 'Contact created successfully!';
    isError.value = false;
    
    contact.value = { name: '', email: '', phone: '', address: '', company: '' };
  } catch (error) {
    message.value = `Error: ${error.message}`;
    isError.value = true;
  }
};
</script>

<style>
.error {
  color: red;
}
</style>

Блок кода выше соединяет вашу функцию облачного кода для логики создания нового контакта с вашим приложением Nuxt.

Он взаимодействует с бэкендом для хранения контактной информации и обеспечивает обратную связь с пользователем в зависимости от успеха или неудачи операции.

Блок кода пытается (с блоком try-catch) выполнить функцию createContact на сервере Back4App с помощью Parse SDK(await Parse.Cloud.run('createContact', {...contact.value})). Это отправляет контактную информацию(contact.value) на сервер Back4App для хранения.

При успешном сохранении появляется сообщение “Контакт создан успешно!”, а форма очищается, сбрасывая объект контакта и позволяя вводить новые данные.

Однако при возникновении ошибки выводится информативное сообщение об ошибке, включающее сведения от сервера с шаблонными литералами(${error.message}).

Вставьте следующий код в файл contactsList.vue:

<template>
  <!--   Previous Content -->
</template>

<script setup>
import { ref, onMounted } from "vue";
import Parse from "parse";

const contacts = ref([]);

const fetchContacts = async () => {
  try {
    contacts.value = await Parse.Cloud.run("getContacts");
  } catch (error) {
    console.error("Failed to fetch contacts", error);
  }
};

const deleteContact = async (objectId) => {
  try {
    await Parse.Cloud.run("deleteContact", { objectId });
    contacts.value = contacts.value.filter(
      (contact) => contact.objectId !== objectId,
    );
  } catch (error) {
    console.error("Failed to delete contact", error);
  }
};

onMounted(fetchContacts);
</script>

Приведенный выше код управляет получением и удалением контактов для вашего приложения. Он взаимодействует с Back4App Backend для хранения и извлечения данных.

Блок кода определяет две важнейшие функции:

  • fetchContacts: Эта асинхронная функция извлекает список контактов из бэкенда. Она использует Parse.Cloud.run('getContacts'), вызывая функцию облачного кода “getContacts” на вашем сервере Back4App. Полученные контакты хранятся в реактивном массиве с именем contacts.
  • deleteContact: Эта асинхронная функция предназначена для удаления конкретного контакта. В качестве аргумента она принимает objectId – уникальный идентификатор контакта в базе данных бэкенда. Функция использует Parse.Cloud.run('deleteContact', { objectId }) для вызова функции облачного кода с именем “deleteContact”, передавая объектный идентификатор для удаления. При успешном выполнении код фильтрует локальный массив контактов, чтобы удалить удаленные контакты.

Теперь, когда вы закончили подключение фронт- и бэк-энда приложения, вы можете просмотреть его, выполнив команду npm, приведенную ниже.

npm run dev

Вы заметите загрузку сервера Nuxt Nitro. После загрузки приложение должно быть доступно по URL http://localhost:3000/. При переходе на URL-адрес вы увидите окно, подобное изображенному ниже.

Приложение для контактной книги

Перейдя на страницу Контакты, вы должны увидеть массив контактов. Эти контакты являются фиктивными данными, которые Back4app AI Agent создал для вас во время создания бэкенда Back4app.

Приложение для контактной книги

Щелкнув на ссылке Добавить контакт, вы увидите форму для ввода данных о новом контакте. Например:

Контактное приложение

Нажав на кнопку “Отправить”, вы должны четко выделить поля. Перейдя на страницу “Контакты”, вы увидите только что созданный контакт.

Контактное приложение

Развертывание полностью готового веб-приложения

Ниже описаны шаги по развертыванию приложения Nuxt. Теперь, когда вы закончили создание и тестирование приложения, вы можете развернуть приложение Nuxt с помощью контейнеров Back4app, чтобы сделать ваше приложение общедоступным.

Чтобы ускорить процесс развертывания, попросите агента Back4app AI Agent выполнить следующие инструкции:

Give me simplified steps to deploy my Nuxt application with Back4app containers
Подсказка агента искусственного интеллекта

Вы увидите шаги, похожие на те, что описаны ниже.

Containerize Your Application (Create a Dockerfile)
Build and Push Docker Image
Configure Deployment
Deploy Your Container

Для докеризации приложения создайте в корневом каталоге файл Dockerfile и файл .dockerignore и вставьте в них следующие скрипты.

В файле Dockerfile:

FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
RUN npm run build
CMD [ "npm", "run", "start" ]

Кроме того, в файле .dockerignore:

node_modules
.nuxt

Dockerfile содержит инструкции по сборке образа Docker. Dockerfile включает шаги по установке необходимых зависимостей приложения.

Файл .dockerignore – это простой текстовый файл, в котором перечислены шаблоны, указывающие Docker, какие файлы и папки следует исключить при сборке образа.

Теперь, чтобы собрать докер-образ вашего приложения, выполните в терминале следующую команду docker:

docker build -t b4a_contacts_app .

Убедитесь, что вы выложили приложение в свой аккаунт GitHub, прежде чем пытаться развернуть приложение на Back4app. Как только вы выложите приложение, интегрируйте свой аккаунт GitHub с Back4app.

Вы можете сделать это с помощью приложения Back4app Github. После интеграции GitHub с Back4app вы можете развернуть свое приложение.

Перейдите на страницу “Контейнеры” с панели управления Back4app.

Выбор бэкенда и контейнеров для Back4app

Затем нажмите кнопку “Создать новое приложение” на экране. Затем вы выберете репозиторий, который хотите развернуть, дадите ему имя b4a_contacts_app и создадите приложение. Для завершения развертывания должно пройти некоторое время.

Журналы контейнеров Back4app

После развертывания ваше приложение должно быть доступно по этому URL, https://b4acontactsapp1-5990olnw.b4a.run/.

Развернутая книга контактов

Заключение

В этой статье вы узнали, как создать и развернуть приложение Nuxt.js с базой данных PostgreSQL в экосистеме Back4app.

Вы также узнали о преимуществах и недостатках создания веб-приложений с помощью Nuxt.js.

От создания функций облачного кода и проектирования базы данных с помощью ИИ-агента Back4App до понимания дружественного интерфейса бэкенда Back4App с низким содержанием кода.

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

С помощью этой комбинации инструментов вы сможете быстро создавать и развертывать веб-приложения.

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


Leave a reply

Your email address will not be published.