Spec-Zone.ru › Express

Вопросы и ответы

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

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

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

  • Список маршрутов
  • Карта маршрутов
  • Контроллеры в стиле MVC

Также существуют сторонние расширения для Express, которые упрощают некоторые из этих шаблонов:

  • Маршрутизация с ресурсами

Как определить модели?

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

См. LoopBack для фреймворка на основе Express, который ориентирован на модели.

Как выполнить аутентификацию пользователей?

Аутентификация — это еще одна область с точки зрения гибкости, в которую Express не вмешивается. Вы можете использовать любой метод аутентификации. Для простого метода с именем пользователя/паролем см. этот пример.

Какие движки шаблонов поддерживает Express?

Express поддерживает любой движок шаблонов, который соответствует (path, locals, callback) сигнатуре. Для нормализации интерфейсов и кеширования движков шаблонов см. проект consolidate.js. Неперечисленные движки шаблонов могут все же поддерживать сигнатуру Express.

Для получения дополнительной информации см. Использование движков шаблонов с Express.

Как обработать ответы 404?

В Express ответы 404 не являются результатом ошибки, поэтому обработчик ошибок middleware их не перехватывает. Это поведение объясняется тем, что ответ 404 просто указывает на отсутствие дополнительной работы; другими словами, Express выполнил все функции middleware и маршруты и обнаружил, что ни один из них не ответил. Все, что вам нужно сделать, это добавить функцию middleware в самый низ стека (ниже всех других функций), чтобы обработать ответ 404:

app.use((req, res, next) => {
  res.status(404).send("Sorry can't find that!")
})

Добавляйте динамические маршруты во время выполнения на экземпляре express.Router(), чтобы маршруты не были заменены функцией middleware.

Как настроить обработчик ошибок?

Вы определяете middleware для обработки ошибок так же, как и другие middleware, за исключением того, что используется четыре аргумента вместо трех; в частности, с сигнатурой (err, req, res, next):

app.use((err, req, res, next) => {
  console.error(err.stack)
  res.status(500).send('Something broke!')
})

Для получения дополнительной информации см. Обработка ошибок.

Как отобразить обычный HTML?

Не нужно! Нет необходимости «отображать» HTML с помощью функции res.render(). Если у вас есть конкретный файл, используйте функцию res.sendFile(). Если вы предоставляете множество ресурсов из каталога, используйте функцию middleware express.static().

Какие версии Node.js требуются Express?

  • Express 4.x требует Node.js 0.10 или выше.
  • Express 5.x требует Node.js 18 или выше.

Предыдущие: Больше примеров

© 2017 StrongLoop, IBM, and other expressjs.com contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v3.0.
https://expressjs.com/en/starter/faq.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API