Цей документ може бути застарілим, в порівнянні з оригінальною англійською версією документації.

Часті Питання (ЧАПи)

Яку структуру я повинен використовувати для свого застосунку?

Немає єдиної відповіді на дане питання. Все залежить від розміру вашого застосунку та від команди, яка приймає участь у його розробці. Щоб бути на стільки гнучким, на скільки це можливо, Express не спирається на фіксовану структуру.

Маршрути та інша логіка застосунку може розміщуватись у файлах довільної кількості, та поміщатись в каталоги будь-якої структури. Розгляньте наступні патерни проектування:

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

Як визначати моделі?

В Express немає засобів для роботи з базою даних. Їх надають деякі сторонні модулі Node.js, що дозволяють вам взаємодіяти практично з будь-якою базою даних.

Ознайомтесь з LoopBack - цей фреймворк створено на базі Express, він зорієнтований на роботу з моделями.

Яким чином можна ідентифікувати користувачів?

Ідентифікація - це ще одна чутлива область, яку Express не ризикнув охопити. Ви можете використовувати будь-яку схему ідентифікації. Проста схема “логін / пароль”, представлена в цьому прикладі.

Які шаблонізатори підтримує Express?

Express підтримує будь-які шаблонізатори, що узгоджуються з сигнатурою (path, locals, callback). Додаткову інформацію, стосовно нормалізації інтерфейсів шаблонізаторів та кешування, можна знайти в проекті consolidate.js. Цей список може й не містити певних шаблонізаторів, проте вони можуть все ж підтримувати сигнатуру Express.

Як можна обробляти 404-ті відповіді?

В Express, 404-ті відповіді не генеруються в результаті помилок, а тому проміжні обробники помилок не перехоплюють їх. Така поведінка існує оскільки 404-ту відповідь ми отримуємо через відсутність відповідної функції в переліку проміжних обробників при маршрутизації. Все що треба зробити в такому випадку, - це додати проміжну функцію в самий низ черги обробників, яка якраз і буде призначатись для формування 404-тої відповіді:


app.use(function(req, res, next) {
  res.status(404).send('Вибачте, такої сторінки не існує!');
});

Як можна встановити обробника помилок?

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


app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Щось поламалось!');
});

Більш детально, можна проглянути розділ обробка помилок.

Як можна відмальовувати простий код HTML?

Не треба! Не потрібно “відмальовувати” HTML за допомогою функції res.render(). Якщо ви маєте окремий файл, скористайтесь функцією res.sendFile(). Якщо ви маєте великий набір файлів в певній директорії, використовуйте проміжну функцію express.static().