Есть пример best practices простого CRUD приложения Node.js + Express.js в ООП стиле со всеми фишками ES6? Нужен пример эталонного приложения, без применения тяжеловесных фреймворков.
В этом примере мы создаем модель пользователя (User), контроллер пользователя (UserController) и маршруты для работы с пользователями. ООП стиль помогает структурировать код и делает его более удобным для поддержки и расширения. Мы также используем ES6 синтаксис, например классы, стрелочные функции и деструктуризацию объектов. Вы можете использовать этот пример как основу для разработки своего CRUD приложения на Node.js + Express.js.
Да, конечно, вот пример простого CRUD приложения на Node.js + Express.js в ООП стиле с использованием фишек ES6:
// models/User.jsclass User {
constructor(id, name, email) {
this.id = id;
this.name = name;
this.email = email;
}
}
module.exports = User;
// controllers/UserController.js
const User = require('../models/User');
class UserController {
constructor() {
this.users = [];
}
getUsers() {
return this.users;
}
getUserById(id) {
return this.users.find(user => user.id === id);
}
createUser(name, email) {
const id = this.users.length + 1;
const newUser = new User(id, name, email);
this.users.push(newUser);
return newUser;
}
updateUser(id, name, email) {
const user = this.getUserById(id);
if (user) {
user.name = name;
user.email = email;
return user;
}
return null;
}
deleteUser(id) {
const userIndex = this.users.findIndex(user => user.id === id);
if (userIndex !== -1) {
this.users.splice(userIndex, 1);
return true;
}
return false;
}
}
module.exports = UserController;
// routes/users.js
const express = require('express');
const router = express.Router();
const UserController = require('../controllers/UserController');
const userController = new UserController();
router.get('/', (req, res) => {
res.json(userController.getUsers());
});
router.get('/:id', (req, res) => {
const id = parseInt(req.params.id);
const user = userController.getUserById(id);
if (user) {
res.json(user);
} else {
res.status(404).send('User not found');
}
});
router.post('/', (req, res) => {
const { name, email } = req.body;
const newUser = userController.createUser(name, email);
res.status(201).json(newUser);
});
router.put('/:id', (req, res) => {
const id = parseInt(req.params.id);
const { name, email } = req.body;
const updatedUser = userController.updateUser(id, name, email);
if (updatedUser) {
res.json(updatedUser);
} else {
res.status(404).send('User not found');
}
});
router.delete('/:id', (req, res) => {
const id = parseInt(req.params.id);
const deleted = userController.deleteUser(id);
if (deleted) {
res.status(204).send();
} else {
res.status(404).send('User not found');
}
});
module.exports = router;
В этом примере мы создаем модель пользователя (User), контроллер пользователя (UserController) и маршруты для работы с пользователями. ООП стиль помогает структурировать код и делает его более удобным для поддержки и расширения. Мы также используем ES6 синтаксис, например классы, стрелочные функции и деструктуризацию объектов.
Вы можете использовать этот пример как основу для разработки своего CRUD приложения на Node.js + Express.js.