Курс MEAN стека: MongoDB, Express, Angular, Node.js

Этот курс посвящен разработке веб-сайтов с использованием 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 перед началом работы.

Настройка проекта

Перед началом работы необходимо установить:

  1. Node.js: Скачайте рекомендованную версию с официального сайта.
  2. 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, настроен сервер и обработка простого запроса. В следующих уроках будет добавлена регистрация, авторизация и создана полноценная веб-страница.

Что будем искать? Например,программа