Перейти до основного вмісту

Статичні ресурси

Але повернімося до нашого веб-сервера. У нас є приклад статичного сайту для якого ми написали простий веб-сервер на чистому 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 дозволяє отримати повний шлях до папки.