Модуль http
Часть раздела Основы Express путешествия по Node.js на Coddy. Урок 2 из 23.
Express выполняет за вас работу, которую вы не видите. Это видно на примере собственного модуля Node node:http, на котором построен Express.
import http from 'node:http';
const server = http.createServer((req, res) => {
if (req.url === '/repairs') {
res.statusCode = 503;
res.end('Repairs are closed today');
return;
}
res.end('Welcome to the bike shop');
});
server.listen(3000);Node вызывает функцию для каждого запроса. Маршрутов нет: вы сами сравниваете req.url — путь, по которому был сделан запрос. res.statusCode — это код состояния, число, которое показывает, как прошёл запрос: 200 означает «ОК», 404 — «не найдено». res.end отправляет тело ответа и завершает ответ, поэтому задайте код состояния до его вызова.
Задание
ЛегкоПрежде чем продолжить знакомство с Express, напиши небольшой сервер с помощью собственного модуля Node node:http, чтобы увидеть, какую работу Express выполняет за тебя.
- В
server.js, внутри функции, переданной вhttp.createServer, проверь значениеreq.url. Если оно равно/, отправь текстHome. - Для всех остальных путей установи код состояния 404 и отправь текст
Not found. Установи статус до отправки. После завершения ответа его статус уже нельзя изменить.
Попробуй: Нажми «Запустить» и отправь /. Ты должен увидеть Home со статусом 200. Отправь /nope, а затем /recipes/today. В обоих случаях должен отображаться текст Not found со статусом 404. В уроке 1 Express отправил этот ответ 404 за тебя; здесь ты напишешь его сам.
Попробуйте сами
import http from 'node:http';
const server = http.createServer((req, res) => {
// Для / отвечай Home, а для всех остальных путей — 404 Not found.
res.end('Hello from Node');
});
server.listen(3000, () => {
console.log('Listening on port 3000');
});
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы Express
Потренируйтесь самостоятельно: Песочница Express