Статичні ресурси
Але повернімося до нашого веб-сервера. У нас є приклад статичного сайту
для якого ми написали простий веб-сервер на чистому Node.js. Розглянемо, як у
Express можна надсилати користувачеві статичні файли. Для представлення
статичних файлів в Express використовується функція проміжної обробки
express.static
.
Щоб розпочати безпосереднє надання файлів, необхідно
передати ім'я каталогу, де знаходяться статичні ресурси, на функцію
проміжної обробки express.static
.
Створимо для статичних файлів у проекті каталог public
, в який додамо
наш сайт з index.html
сторінкою,
Головний файл нашої програми app.js
буде виглядати наступним чином:
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
І якщо зараз ми запустимо наш сервер, то за адресою http://localhost:3000/ ми побачимо те, що показано на малюнку 4 з попередньої статі "Web сервер на Node.js" першого заняття. Express повністю взяв на себе відображення нашого сайту.
Щоб вставити компонент express.static
в процесі обробки запиту,
викликається функція app.use()
. Ця функція express дозволяє додавати
різні компоненти, вони ще називаються middleware або проміжне ПЗ, в
конвеєр обробки запиту:
app.use(express.static(path.join(__dirname + '/public')));
Причому цей виклик повинен розташовуватися до решти викликів функції
app.get()
, app.post()
і т.д. Насамперед ми обробляємо статичні
ресурси. У саму функцію express.static()
передається шлях до папки зі
статичними файлами. Спеціальна змінна Node.js __dirname
дозволяє
отримати повний шлях до папки.