Похожие презентации:
Работа со встроенными модулями
1.
ЗАНЯТИЕ №2Работа со
встроенными
модулями
2.
Пример простейшего сервера1.
Модуль http
let http = require("http");
Нам понадобится модуль http
3.
http.createServer(requestHandler)Создаёт сервер. requestHandler - это функция,
которая обработает запрос.
• Эта функция принимает два параметра request и
response.
• request - объект запроса, входящие данные
• response - объект ответа
• Метод возвращает объект Server
4.
request (свойства)• headers - заголовки
• method - метод запроса
• url - адрес запроса
5.
response (методы)• statusCode: устанавливает статусный код ответа
• statusMessage: устанавливает сообщение,
отправляемое вместе со статусным кодом
• setHeader(name, value): добавляет в ответ один
заголовок
• write: пишет в поток ответа некоторое содержимое
• end: сигнализирует серверу, что заголовки и тело
ответа установлены, в итоге ответ отсылается
клиенту.
6.
server.listen(port [, callback])• Запускает сервер на прослушку входящих
соединений
• port - порт
• callback - функция обратного вызова
(необязательный параметр)
7.
Простой вариант сервераlet http = require("http");
let server = http.createServer( (req, res)=> {
console.log(req.url);
res.end("This is server");
})
server.listen(3000, ()=>{
console.log("server is running on port 3000")
})
8.
Сделаем сервер, по разному отвечающийна get-запросы по адресу
• 2. модуль url
• Модуль для обработки url адресов.
• метод parse(url [, true])
• 1-ый параметр url, 2-ой - если мы хотим
преобразовать строку запроса в объект (будет
доступен в свойстве .query).
9.
Отслеживаем параметры запросаlet server = http.createServer( (req, res)=> {
console.log(`URL: ${req.url}`);
let data = url.parse(req.url, true);
if (data.query.name) {
res.end(`Hello, ${data.query.name}`);
} else {
res.end("What is that?");
}
})
10.
ЗаданиеСервер с выдачей информации по запросу.
На сервере должно быть несколько массивов с разной
информацией (можно взять за пример reqres.in).
Сделать несколько вариаций запросов - с разными путями,
выдавать по каждому запросу разные страницы.