Вопросы и ответы
Как следует структурировать приложение?
На этот вопрос нет однозначного ответа. Ответ зависит от масштаба приложения и команды, участвующей в его разработке. Для максимальной гибкости Express не делает предположений относительно структуры.
Маршруты и другой логику, специфичную для приложения, можно разместить в любом количестве файлов в любой структуре каталогов, которая вам подходит. Для вдохновения ознакомьтесь со следующими примерами:
Также существуют сторонние расширения для 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