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
.