Настройка проекта MEAN-стека включает подключение к локальной базе данных MongoDB, организацию работы со статическими файлами и создание структуры для хранения настроек проекта и обработчиков URL-адресов.
Настройка статической папки
Для хранения статических файлов (HTML, изображения, аудио и др.) создадим папку public. В файле index.js, после объявления переменной порта, добавим следующий код:
const express = require('express');
const path = require('path');
// ... другие импорты и код ...
app.use(express.static(path.join(__dirname, 'public')));
// ... остальной код ...
__dirname — путь к текущей директории; path.join объединяет пути; public — имя создаваемой папки. Создайте папку public в корне проекта.
Подключение к локальной базе данных
Создадим папку config и в ней файл db.js для хранения информации о подключении к базе данных и секретного ключа:
module.exports = {
db: 'mongodb://localhost:27017/website',
secret: 'mysecretkey'
};
db — строка подключения к MongoDB; website — имя базы данных; secret — секретный ключ (для разработки; в продакшене используйте более надежный ключ).
Подключение базы данных в index.js
Подключим db.js в index.js и осуществим подключение к MongoDB с помощью mongoose:
const config = require('./config/db');
const mongoose = require('mongoose');
// ... другой код ...
mongoose.connect(config.db, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true,
autoIndex: false
}).then(() => console.log('Успешно подключились к БД'))
.catch(err => console.log('Не удалось подключиться к БД', err));
// ... остальной код ...
Параметры useNewUrlParser, useUnifiedTopology, useFindAndModify, useCreateIndex и autoIndex обеспечивают совместимость с новыми версиями MongoDB и устраняют предупреждения. При ошибке MongoNetworkError переустановите MongoDB.
Подключение CORS и body-parser
Для кросс-доменных запросов и обработки данных из форм (POST-запросы) подключим middleware cors и body-parser:
const cors = require('cors');
const bodyParser = require('body-parser');
// ... другой код ...
app.use(cors());
app.use(bodyParser.json());
Организация обработчиков маршрутов
Создадим папку routes и файл routes/account.js для обработчиков URL-адресов:
const express = require('express');
const router = express.Router();
router.get('/register', (req, res) => {
res.send('Страница регистрации');
});
router.get('/auth', (req, res) => {
res.send('Страница авторизации');
});
router.get('/profile', (req, res) => {
res.send('Кабинет пользователя');
});
module.exports = router;
Подключим routes/account.js в index.js:
const accountRoutes = require('./routes/account');
// ... другой код ...
app.use('/account', accountRoutes);
Маршруты, начинающиеся с /account, будут обрабатываться routes/account.js.
В этом уроке настроены основные компоненты проекта MEAN-стека: подключение к базе данных MongoDB, работа со статическими файлами, middleware CORS и body-parser, а также структура проекта с обработчиками маршрутов в отдельном файле. Это обеспечивает чистый и понятный код, упрощая дальнейшую разработку и поддержку.