Бэкенд нашего простого Nuxt.js приложения лежит в папке server. Основным файлом приложения является index.js. В нём мы подключаем Express и Mongoose, затем коннектимся к базе данных. Далее идёт подключение маршрутов, которые связаны с моделью Page. В конце файла мы подключаем Nuxt.js в качестве middleware и используем nuxt.render для рендера контента.
В папке model лежит схема модели Page. Мы перечисляем поля из которых будут состоять наши динамические страницы. Например, можно сразу указать тип поля, требования по его наличию и уникальности. Удобно добавлять автоматически добавляемую дату создания документа через Date.now.
В папке routes лежат маршруты, которые связаны с моделью Page. В нашем простейшем приложении это:
- вывод всех страниц,
- вывод одной страниц,
- создание страницы,
- обновление страницы,
- удаление страницы.
Поиск одной страницы, которую мы хотим выводить, обновлять или удалять осуществяем по её url. Они у нас уникальные и передаются в пути запроса из фронтенда. Вывод эту задачи в отдельную функцию getPage, которая производит поиск. Если страница не найдена, то возвращается 404 ошибка.