Этот курс посвящен разработке веб-сайтов с использованием MongoDB, AngularJS, Node.js и Express.js. Сначала рассмотрим стек MEAN, его популярность и возможности обучения.
Стек MEAN: описание и популярность
Стек MEAN — это аббревиатура, обозначающая технологии: MongoDB, Express.js, AngularJS, Node.js. Он состоит из четырех компонентов:
- MongoDB: База данных.
- Express.js: Фреймворк для маршрутизации (обработка URL-адресов).
- AngularJS: Фреймворк для создания пользовательского интерфейса.
- Node.js: Серверная платформа.
Главное преимущество стека MEAN — использование JavaScript на всех уровнях: Express.js, AngularJS и Node.js написаны на JavaScript. Это упрощает и ускоряет разработку.
Схема работы: пользователь взаимодействует с интерфейсом (AngularJS), отправляя запрос на сервер (Node.js). Express.js обрабатывает запрос, при необходимости обращаясь к MongoDB за данными. Полученная информация передается обратно через Node.js и Express.js в AngularJS для отображения пользователю.
В отличие от традиционных стеков, таких как LAMP (Linux, Apache, MySQL, PHP) или LEMP (Linux, Nginx, MySQL, PHP), стек MEAN не привязан к определенной операционной системе и является кросс-платформенным. Он работает на Windows, macOS и Linux благодаря Node.js, выступающему не только сервером, но и полноценной платформой, встраиваемой в приложение. Это упрощает развертывание.
Рекомендуется изучить основы MongoDB, Express.js, Node.js и AngularJS перед началом работы.
Настройка проекта
Перед началом работы необходимо установить:
- Node.js: Скачайте рекомендованную версию с официального сайта.
- MongoDB: Скачайте и установите сервер MongoDB с официального сайта.
Создайте папку для проекта и откройте её в текстовом редакторе (например, Atom). Первый файл — package.json, описывающий проект и его зависимости. Создайте его командой npm init в терминале. Вам будет предложено ввести информацию о проекте (название, версия, описание и т.д.).
Отредактируйте package.json и добавьте в секцию dependencies необходимые библиотеки:
"dependencies": {
"express": "*",
"mongoose": "*",
"bcrypt": "*",
"passport": "*",
"passport-local": "*",
"body-parser": "*",
"cors": "*",
"jsonwebtoken": "*"
}
Выполните команду npm install для установки зависимостей. В папке node_modules появятся установленные библиотеки.
Создайте файл index.js — основной файл приложения. Подключите необходимые библиотеки:
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const passport = require('passport');
// passport-local встроен в Node.js и не требует отдельного импорта
const app = express();
const port = 3000;
app.use(cors());
app.use(bodyParser.json());
app.use(passport.initialize());
app.get('/', (req, res) => {
res.send('Главная страница сайта');
});
app.listen(port, () => {
console.log(`Сервер запущен по порту ${port}`);
});
Для запуска сервера используйте команду npm start. Добавьте скрипт start в package.json:
"scripts": {
"start": "node index.js"
}
Сервер будет доступен по адресу localhost:3000.
Для автоматической перезагрузки сервера при изменениях кода установите глобально библиотеку nodemon: npm install -g nodemon. Запускайте сервер командой nodemon index.js.
Создан базовый проект на стеке MEAN, настроен сервер и обработка простого запроса. В следующих уроках будет добавлена регистрация, авторизация и создана полноценная веб-страница.