Мазмунга өтүү

Файлдарды жуктоо жана статикалык файлдарды таратуу

Сабактын башталышы

Файлдарды жуктоо жана статикалык файлдарды таратуу

Колдонуучуларга серверге файл жонотууго мумкунчулук бериниз, файлдарды эстутумду ашыкча жуктобостон кайра берип бериниз

Негизги идея: Чыныгы тиркемелер текстти гана эмес, андан коп нерсени ташыйт. Колдонуучулар аватар, PDF жана таблицаларды жуктойт; сервериниз болсо суроттордагы, стилдерди жана жуктоп алуучу файлдарды кайра берет. Муну туура жасоо учун уч курал чогуу иштейт: ресурстарды таратуу учун express.static, multipart жуктоолорду кабыл алуу учун multer жана чоо файлдарды бутундой эмес, болук-болук берүү учун агымдар (streams).
Сабактын аягында сиз мунуларды жасай аласыз:
  • ресурстар папкасын express.static аркылуу таратуу,
  • multipart/form-data деген эмне жана эмне учун express.json() аны окуй албай турганын тушундуруу,
  • жеке жана коптогон жуктоолорду multer аркылуу кабыл алуу (дискте жана эстутумда сактоо),
  • файлдарды res.sendFile, res.download жана агым аркылуу кайра жонотуу.

1. express.static аркылуу статиканы таратуу

Статикалык файл — сервер озгортпостон кайра берүүчу файл: сурот, CSS, шрифт, жуктоп алуучу PDF. Алардын ар бирине очунчо маршрут жазуунун кереги жок. Express'те express.static деген камтылган middleware бар, ал дисктеги папканы URL даректерине автоматтык турдо байланыштырат.

const express = require('express');
const path = require('path');
const app = express();

// Serve every file inside ./public at the site root
app.use(express.static(path.join(__dirname, 'public')));

app.listen(3000);

Эми public/logo.png файлы озунуздун маршрутунуз жок эле http://localhost:3000/logo.png дареги боюнча жеткиликтуу. Express ошондой эле туура Content-Type коёт, кэштоо аталыштарын колдойт жана HTTP range-суроолоруна жооп берет.

Коп учурда ресурстарды API маршруттары менен кагылышпашы учун URL префикс астына чыгарган ынгайлуу. Монтаж жолун биринчи аргумент катары бериниз:

// Mount the same folder under a URL prefix
app.use('/static', express.static('public'));

// public/logo.png  ->  http://localhost:3000/static/logo.png
// public/css/app.css -> http://localhost:3000/static/css/app.css
Коопсуздук эскертуусу: ачык болууга тийиш папкаларды гана ачыныз. express.static дегенди эч качан долбоордун тамырына багыттабаныз — антпесе баштапкы кодунузду жана node_modules папкасын таратып жибересиз.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө