Найти в Дзене
TEXNIK_111

ExpressJS: Создаём первый локалхост. Hello World

Привет! В этой статье мы напишем свой Hello World на ExpressJS. Начнём! Что? Те, кто никогда не программировал сервера, скажут: "Как? Это почти невозможно!" А вот и возможно. Прочитайте: Трудно — не значит непреодолимо. М.И. Калинин На самом деле сервер написать просто. Мы не будем делать смесь из PHP и MySQL. Для этого есть специальный серверный язык программирования - NodeJS. По названию вы заметили, что он основан на JavaScript, но нет. Он лишь похож на JavaScript, а сам он написан на C++, чтобы была возможность импортировать модули, работать с файлами, серверами и т.д. Теория Для начала надо понять, что такое сервер. Сервер - это специальный компьютер, предназначенный для выполнения серверных программ (типа отображения страниц). В нашем случае сервером будет наш компьютер. И так, при получения запроса от клиента (какого-то браузера) серверная программа на сервере который находится по нужному адресу обрабатывает код и возвращает ответ браузеру. Вот таблица кодов ответа HTTP Практика
Оглавление

Привет! В этой статье мы напишем свой Hello World на ExpressJS. Начнём!

Что?

Те, кто никогда не программировал сервера, скажут: "Как? Это почти невозможно!"

А вот и возможно. Прочитайте:

Трудно — не значит непреодолимо.
М.И. Калинин

На самом деле сервер написать просто. Мы не будем делать смесь из PHP и MySQL. Для этого есть специальный серверный язык программирования - NodeJS. По названию вы заметили, что он основан на JavaScript, но нет. Он лишь похож на JavaScript, а сам он написан на C++, чтобы была возможность импортировать модули, работать с файлами, серверами и т.д.

Теория

Для начала надо понять, что такое сервер.

Сервер - это специальный компьютер, предназначенный для выполнения серверных программ (типа отображения страниц). В нашем случае сервером будет наш компьютер.

И так, при получения запроса от клиента (какого-то браузера) серверная программа на сервере который находится по нужному адресу обрабатывает код и возвращает ответ браузеру. Вот таблица кодов ответа HTTP

Как сервер обрабатывает HTTP запрос
Как сервер обрабатывает HTTP запрос

Практика

И так, установим Node.js. Нажимаем на нужную нам версию, но я рекомендую LTS (16.14.2 в момент выхода статьи). Ждём завершения установки Node.js. Так как мой компьютер установить его не может, картинки показывать не буду

Когда сервер установлен, создаём где нибудь папку под названием web-server. Откройте её и в проводнике, и в терминале/командной строке. Создаём в папке файл server.js. В терминале/командной строке вводим:

npm init

Нажимаем на всех этапах enter. Если вы сделали всё правильно, у вас должно быть примерно такое дерево каталогов:

index.js
package.json
package_lock.json

Теперь:

npm i express

И в дереве:

index.js
package.json
package_lock.json
node_modules

Теперь в каком нибудь текстовом редакторе открываем index.js и вводим в него этот код:

const express = require('express') // достаём express из папки node_modules
let app = express() // создаём объект-приложение, через который будет производится управление всем сервером
app.use('/', function (req, res) { // создаём обработчик use
res.send('Hello Express') // отправляем текст Hello Express клиенту
})
app.listen(3000, function () { // запускаем сервер на порте 3000
console.log('Сервер запущен') // сообщаем об запуске сервера
})

Вводите в командной строке node index.js и открывайте localhost:3000. У вас должен появится Hello Express. Ура, вы создали свой веб-сервер!

Задания

  1. Поэкспериментируйте с портами. В app.listen можно указать любой порт. Просто замените 3000 на любой порт, но перед тем, как использовать порт, в командной строке введите netstat -a и убедитесь, что в списке нет адреса с нужным вам портом и состоянием LISTENING
  2. Попробуйте поменять отправляемый текст. Замените Hello Express на то, что вам захочется, но учтите, что текст обязательно должен быть в двойных или одинарных кавычках
  3. Добавьте ещё обработчики. Учтите, что обработчик нужно добавлять до app.listen. При этом замените / в новом обработчике на что-то, например /about/. И учтите, что обязательно в начале и в конце нужно вставлять слеш (/). В новых обработчиках не забудьте и поменять отправляемый текст, делая тоже самое что и во 2-ом задании, только делая это в новом обработчике, а не в первом