Объясните структуру приложения на Express JS?

Этот вопрос проверяет понимание базовой структуры проекта на Express.js и умение организовывать код.

Короткий ответ

Структура приложения Express.js включает входную точку (обычно app.js или server.js), каталоги для маршрутов, контроллеров, моделей, middleware, представлений и статических файлов. Это разделение упрощает чтение, поддержку и масштабирование приложения.

Длинный ответ

Стандартная структура приложения Express.js:

 

- Входная точка (app.js или server.js):
Здесь настраивается сервер, подключается база данных, middleware и основные маршруты.

const express = require('express');
const app = express();
const routes = require('./routes/index');

app.use(express.json());
app.use('/api', routes);

app.listen(3000, () => console.log('Server running on port 3000'));

 

- Каталог routes:
Содержит файлы, описывающие маршруты приложения.

// routes/userRoutes.js
const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');

router.get('/', userController.getUsers);
module.exports = router;

 

- Каталог controllers:
Содержит логику обработки запросов.

// controllers/userController.js
exports.getUsers = (req, res) => {
  res.json([{ id: 1, name: 'John Doe' }]);
};

 

- Каталог models:
Используется для описания схем данных, например, для MongoDB.

const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
  name: String,
  email: String,
});
module.exports = mongoose.model('User', UserSchema);

 

- Каталог middleware:
Содержит пользовательские middleware для обработки запросов.

module.exports = (req, res, next) => {
  console.log(`${req.method} ${req.url}`);
  next();
};

 

- Каталог views:
Если используется шаблонизатор (EJS, Pug), здесь хранятся файлы представлений.

 

- Каталог public:
Для хранения статических файлов (CSS, изображения, JavaScript).

public/
  css/
  js/
  images/

 

- Преимущества такой структуры:

1. Разделение обязанностей.

2. Простота в масштабировании.

3. Удобство тестирования и поддержки.


Эта структура помогает создавать гибкие и масштабируемые приложения, упрощая работу с кодом в больших проектах.

Уровень

  • Рейтинг:

    3

  • Сложность:

    3

Навыки

  • Express

Подпишись на Node.js Developer в телеграм