Введение в JavaScript и Node.js
Мы уже умеем работать с базой данных из Java. Теперь сделаем то же самое, но на JavaScript — одном из самых популярных языков в мире. Это позволит нам потом написать настоящее веб-приложение, которое работает с базой данных.
План лекции
Сегодня мы заложим фундамент. Вот что вы узнаете.
- 1 Что такое JavaScript и чем он отличается от Java
- 2 Где работает JavaScript: браузер и Node.js
- 3 Установка Node.js
- 4 Первый скрипт на JavaScript
- 5 Переменные: let и const
- 6 Функции: обычные и стрелочные
- 7 Массивы и объекты
- 8 npm и package.json — менеджер пакетов
- 9 Асинхронность: зачем она нужна
- 10 Promise и async/await
- 11 Типичные ошибки
- 12 Практика и домашнее задание
Что такое JavaScript?
JavaScript (сокращённо JS) — это язык программирования, который изначально создавался для «оживления» веб-страниц. Когда вы нажимаете кнопку на сайте и что-то происходит без перезагрузки страницы — это JavaScript.
Сегодня JavaScript вышел далеко за пределы браузера. На нём пишут:
кнопки, анимации, формы
через Node.js
React Native
браузерные и серверные
для Telegram, Discord
связь с базами данных
JavaScript ≠ Java
Несмотря на похожие названия, это совершенно разные языки. Их часто путают, но общего у них только слово «Java» в названии.
Где работает JavaScript: браузер
Изначально JavaScript работает в браузере. Каждый браузер (Chrome, Firefox, Edge, Safari) содержит движок JavaScript — программу, которая выполняет код.
В браузере JavaScript имеет доступ к странице: может менять текст, цвета, реагировать на клики, отправлять запросы на сервер.
Где работает JavaScript: Node.js
Node.js — это среда выполнения JavaScript вне браузера. Она позволяет запускать JavaScript-файлы прямо на компьютере или сервере, как мы запускали Java-классы через команду java.
Node.js построен на том же движке V8, что и Google Chrome. То есть под капотом Node.js работает тот же самый быстрый движок JavaScript.
Установка Node.js
Node.js нужно установить на компьютер. Скачивается с официального сайта nodejs.org.
Шаг 1. Скачать установщик
На главной странице сайта есть две версии:
- LTS (Long Term Support, долгосрочная поддержка) — рекомендуем. Стабильная, проверенная.
- Current — новая, но может содержать ошибки.
Выберите LTS и скачайте установщик для Windows.
Шаг 2. Установить
Запустите установщик и следуйте инструкциям. Все настройки по умолчанию подходят.
Шаг 3. Проверить установку
Откройте командную строку (терминал) и введите:
v20.10.0 и 10.2.3) — всё установлено.Первый скрипт на JavaScript
Создадим простой файл и запустим его через Node.js.
Шаг 1. Создать файл
Откройте любой текстовый редактор (лучше VS Code — Visual Studio Code, редактор кода от Microsoft) и создайте файл hello.js.
Шаг 2. Запустить
В терминале (в той же папке, где лежит файл) выполните:
console.log — это аналог System.out.println в Java. Он выводит текст в консоль.Переменные: let и const
В современном JavaScript используют два ключевых слова для создания переменных.
В старом коде вы можете встретить var. Сегодня его не используют — у него проблемы с областью видимости.
var. Всегда let или const. Правило: const по умолчанию, let только если значение реально меняется.Типы данных в JavaScript
В JavaScript типы данных делятся на две группы: простые (примитивы) и сложные (объекты).
число: 42, 3.14, -7
строка: "Привет", 'Hello'
true или false
пустое значение, заданное явно
значение не задано
объект, массив, функция
let x = 5 — сам определит, что это число.typeof: typeof 42 → "number".Функции: обычные
Функция — это блок кода, который можно вызывать по имени. Аналог метода в Java.
function— ключевое слово.greet— имя функции.(name)— параметры.return— что вернуть.
Функции: стрелочные
В современном JavaScript чаще используют стрелочные функции — они короче и удобнее.
return, его можно не писать.Массивы
Массив — это список значений. Аналог int[] в Java, но может хранить любые типы.
Объекты
Объект — это набор пар «ключ: значение». Аналог класса в Java, но без описания.
[{title, year}, {title, year}, ...].Что такое npm?
npm (Node Package Manager, «менеджер пакетов Node.js») — это инструмент, который скачивает и подключает сторонние библиотеки. Аналог Maven в Java.
С помощью npm мы установим:
- mssql — драйвер для работы с MS SQL Server;
- express — веб-фреймворк для создания API;
- dotenv — для хранения настроек подключения в отдельном файле.
package.json — паспорт проекта
package.json — это файл, который описывает ваш проект: имя, версию, зависимости (библиотеки, которые он использует).
Получится файл примерно такого содержания:
Установка библиотеки через npm
Установить библиотеку просто: одна команда в терминале.
Что произойдёт:
- npm найдёт библиотеку
mssqlв своём реестре (хранилище пакетов). - Скачает её и все её зависимости в папку
node_modules/. - Добавит запись в
package.jsonв разделdependencies. - Создаст файл
package-lock.json— точный список версий всех зависимостей.
node_modules/ никогда не отправляют в Git (систему контроля версий). Она огромная и легко восстанавливается командой npm install.node_modules/, просто выполните npm install — и все библиотеки установятся автоматически.Что такое асинхронность?
Прежде чем работать с базой данных, нужно понять асинхронность — главное отличие JavaScript от Java.
Выполняется по порядку. Каждая строка ждёт завершения предыдущей.
Не ждёт. Начинает долгую операцию и идёт дальше.
Представьте, что вы заказали пиццу. Синхронно — стоите у двери и ждёте. Асинхронно — занимаетесь своими делами, а когда привезут, вам позвонят.
Почему база данных — это долго
Запрос к базе данных — это:
- Отправить команду по сети на сервер базы.
- Сервер выполняет запрос (может занять секунды).
- Отправить результат обратно по сети.
- Получить результат в программе.
Всё это время (миллисекунды, а иногда секунды) программа ждёт.
Promise — обещание результата
Promise (по-английски «обещание») — это объект, который представляет результат асинхронной операции. Сейчас результата нет, но он будет.
У Promise три состояния:
ожидание
успешно выполнено
ошибка
async/await — простой способ работы с Promise
Работать с Promise через .then() неудобно. Придумали async/await — синтаксис, который делает асинхронный код похожим на синхронный.
async/await мы будем использовать для всех запросов к базе данных. Это современный стандарт.Пример: имитация запроса к базе
Пока у нас нет настоящей базы, сымитируем её функцию, которая «думает» 2 секунды.
Что произойдёт:
- Сразу выведется «Запрашиваем книги...».
- Программа «подождёт» 2 секунды на строке
await. - Затем выведется «Получили: [...]».
setTimeout — встроенная функция JavaScript, которая выполняет код через указанное количество миллисекунд. Мы используем её, чтобы сымитировать задержку.Обработка ошибок: try/catch
Запрос к базе может упасть: сеть пропала, сервер не отвечает, синтаксис SQL неверный. Нужно обрабатывать ошибки.
try— блок, где может возникнуть ошибка.catch— блок, где мы её ловим.error.message— текст ошибки.
try-catch, что и в Java. Синтаксис похож, смысл тот же.Типичные ошибки новичков
Получите не результат, а
Promise. Всегда ставьте await перед асинхронной функцией.Использовать
await можно только внутри async function. Иначе — ошибка.Устаревший
var имеет странную область видимости. Используйте let или const.В JavaScript
== приводит типы. Всегда используйте === (строгое сравнение).Ошибка «Cannot find module». Нужно выполнить
npm install имя_пакета.Поймали ошибку, но ничего с ней не сделали. Всегда логируйте или выводите сообщение.
Шпаргалка
Сохраните этот слайд — здесь всё, что нужно для старта.
Итоги лекции
Подведём итоги. Вот что вы теперь знаете.
- ✅ JavaScript — язык для браузера и сервера.
- ✅ Node.js — среда выполнения JavaScript вне браузера (на движке V8).
- ✅ npm — менеджер пакетов, аналог Maven в Java.
- ✅ package.json — описание проекта и его зависимостей.
- ✅ let и const — современные способы объявить переменную.
- ✅ Функции: обычные и стрелочные.
- ✅ Массивы и объекты — основа структур данных в JavaScript.
- ✅ Асинхронность — критически важна для работы с базой.
- ✅ Promise и async/await — современный синтаксис.
- ✅ try/catch — обработка ошибок.
mssql.Домашнее задание
Задания для самостоятельной работы. Первые три обязательны, остальные — для оценки «отлично».
- Установите Node.js (LTS-версию) и проверьте через
node --version. - Создайте файл
hello.jsи запустите его черезnode hello.js. - Создайте папку
myproject, выполните в нейnpm init -yи установите пакетmssql. - Напишите функцию, которая принимает массив чисел и возвращает их сумму. Используйте стрелочную функцию.
- Создайте массив объектов
books(title, year) и выведите только те книги, которые изданы после 1950 года (используйтеfilter). - Напишите асинхронную функцию, которая «ждёт» 3 секунды и выводит «Готово». Используйте
PromiseиsetTimeout.
Что дальше?
Мы закончили введение. Дальше — самое интересное.
- Лекция 2: подключение к MS SQL Server из Node.js (пакет
mssql, пул соединений,SELECT,INSERTс параметрами). - Лекция 3: REST API с Express и MSSQL (
GET,POST,PUT,DELETE, JSON-ответы). - Практика 1: создание API «Библиотека» на Node.js + Express + MSSQL.
- Практика 2: финальный проект «Учёт выдач книг» — соединение таблиц, обработка ошибок, валидация, защита от SQL-инъекций.
Советы перед стартом
Несколько советов, которые сэкономят вам время.
Бесплатный редактор от Microsoft. Подсветка синтаксиса, автодополнение, отладка.
JavaScript пишет, что именно не так и в какой строке.
Меняйте код, запускайте снова. Это лучший способ учиться.
Каждая ошибка — это подсказка, что нужно исправить.
Спасибо за внимание!
🟨
JavaScript — это язык, на котором говорит современный интернет
Теперь вы умеете запускать JavaScript через Node.js, устанавливать библиотеки через npm и работать с асинхронностью. На следующей лекции — подключение к базе данных.