Redux — это популярная библиотека JavaScript, которая помогает управлять состоянием приложения предсказуемым и масштабируемым образом. Он широко используется при создании одностраничных приложений и предоставляет централизованное хранилище, в котором хранится все состояние приложения. В этой статье мы рассмотрим простой пример создания приложения Todo List с использованием стека MERN (MongoDB, Express, React, Node.js) с Redux.
Предпосылки
Чтобы следовать этому руководству, вы должны иметь базовое представление о JavaScript и стеке MERN. На вашем компьютере также должны быть установлены Node.js и npm.
Настройка проекта стека MERN
Для начала нам нужно настроить наш проект стека MERN. Сначала создайте новый каталог с именем mern-todo-app и перейдите в него:
mkdir mern-todo-app cd mern-todo-app
Затем инициализируйте новый проект Node.js:
npm init -y
Это создаст новый файл package.json с настройками по умолчанию.
Установка зависимостей
Теперь мы установим необходимые зависимости для нашего приложения стека MERN. Нам понадобятся express, mongoose, body-parser, cors, concurrently, nodemon, react, react-dom и redux. В терминале выполните следующую команду:
npm install express mongoose body-parser cors concurrently nodemon react react-dom redux
Это установит все необходимые зависимости для нашего приложения.
Создание сервера с помощью Express
Мы начнем с создания простого сервера Express. Создайте новый файл с именем server.js в корневом каталоге и добавьте следующий код:
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
app.use(bodyParser.json());
app.use(cors());
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
В этом коде мы импортируем необходимые зависимости, создаем новый экземпляр express и настраиваем промежуточное ПО для анализа входящих запросов JSON и обработки CORS. Мы также определяем константу PORT и прослушиваем входящие соединения на этом порту.
Подключение к MongoDB
Далее мы подключимся к базе данных MongoDB, используя mongoose. Добавьте следующий код в конец файла server.js:
const mongoose = require('mongoose');
const MONGODB_URI = process.env.MONGODB_URI || 'mongodb://localhost:27017/mern-todo-app';
mongoose.connect(MONGODB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
mongoose.connection.once('open', () => {
console.log('MongoDB connection established successfully');
});
В этом коде мы импортируем mongoose и определяем константу MONGODB_URI, указывающую расположение нашей базы данных MongoDB. Затем мы подключаемся к базе данных с помощью метода mongoose.connect() и записываем сообщение в консоль, когда соединение установлено.
Создание модели Todo
Теперь, когда мы подключены к базе данных, мы можем создать модель Todo, используя mongoose. Создайте новый файл с именем todo.model.js в каталоге models и добавьте следующий код:
const mongoose = require('mongoose');
const todoSchema = new mongoose.Schema({
text: { type: String, required: true },
completed: { type: Boolean, default: false },
});
const Todo = mongoose.model('Todo', todoSchema);
module.exports = Todo;
В этом коде мы определяем todoSchema с помощью mongoose.Schema.