Как разработать полноценный сервер в Express

Введение

JavaScript, самый популярный язык программирования в мире, предлагает множество возможностей для разработчиков.

Одним из его ключевых приложений является разработка API, позволяющая нам создавать мощные и масштабируемые веб-сервисы. В этом руководстве мы погрузимся в мир разработки API с помощью Express, гибкой и надежной среды веб-приложений для Node.js.

К концу этого пошагового руководства у вас будет четкое представление о том, как создать API CRUD (создание, чтение, обновление, удаление) с помощью Express.

Что такое CRUD API?

CRUD API — это набор операций, упрощающих создание, поиск, обновление и удаление данных в базе данных. Он служит интерфейсом между внешним интерфейсом приложения и серверной базой данных.

С помощью CRUD API разработчики могут беспрепятственно выполнять эти основные операции, позволяя манипулировать данными с помощью HTTP-запросов.

Зачем использовать Экспресс?

Express — широко распространенная платформа веб-приложений для Node.js благодаря своей простоте, гибкости и отличной производительности. Вот несколько веских причин выбрать Express для разработки API:

  1. Минималистичный: Express придерживается минималистского подхода, позволяя разработчикам быстро и эффективно создавать API. Он предоставляет простой, но мощный набор функций, что делает его идеальным выбором как для небольших, так и для крупномасштабных проектов.
  2. Надежное промежуточное ПО: Express предлагает систему промежуточного ПО, которая упрощает обработку запросов и позволяет реализовать пользовательские функции. Функции промежуточного ПО можно использовать для таких задач, как аутентификация, проверка данных, обработка ошибок и многое другое.
  3. Расширяемость: Express можно легко расширить с помощью дополнительных пакетов и модулей из обширной экосистемы Node.js. Эта гибкость позволяет разработчикам без особых усилий расширять свои API различными функциями и интеграциями.
  4. Удобство для разработчиков: Express может похвастаться хорошо документированным API и активным сообществом, что упрощает поиск поддержки и ресурсов. Его простота и интуитивно понятный дизайн позволяют разработчикам сосредоточиться на создании основных функций своих API, не увязая в ненужных сложностях.

Пошаговое руководство: создание CRUD API в Express

Прежде чем мы углубимся в код, убедитесь, что на вашем компьютере установлены Node.js и npm (диспетчер пакетов Node). Начнем с настройки проекта и установки необходимых зависимостей.

Шаг 1. Настройка проекта

Создайте новый каталог для своего проекта и перейдите к нему с помощью командной строки. Выполните следующую команду, чтобы инициализировать новый проект Node.js:

$ npm init -y

Эта команда создает файл package.json, в котором будут храниться метаданные и зависимости проекта. Далее установим Express и другие необходимые пакеты:

$ npm install express body-parser mongoose

Шаг 2. Настройка экспресс-сервера

Создайте новый файл с именем server.js и импортируйте необходимые модули:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');

const app = express();
const port = process.env.PORT || 3000;
// Middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// Start the server
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

В этом фрагменте кода мы импортируем Express, body-parser и mongoose. Мы создаем экземпляр приложения Express, устанавливаем порт для прослушивания и добавляем промежуточное ПО для разбора тела запроса.

Шаг 3. Установка подключения к MongoDB

Чтобы взаимодействовать с базой данных MongoDB, нам нужно настроить соединение с помощью библиотеки mongoose. Добавьте следующий код в файл server.js:

const mongoURI = 'mongodb://localhost/crud-api';
mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true });

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', () => {
  console.log('Connected to MongoDB');
});

В этом фрагменте кода мы указываем URI подключения MongoDB и устанавливаем соединение, используя mongoose.connect(). Мы также настроили прослушиватели событий для обработки ошибок подключения и регистрации успешного подключения.

Шаг 4. Определение модели данных

Далее давайте определим модель данных для нашего API. Создайте новый файл с именем models.js и добавьте следующий код:

javascriptCopy code
const mongoose = require('mongoose');

const Schema = mongoose.Schema;
const ItemSchema = new Schema({
  name: { type: String, required: true },
  description: { type: String },
  price: { type: Number, required: true },
});
module.exports = mongoose.model('Item', ItemSchema);

В этом коде мы определяем схему мангуста с такими полями, как name, description и price для наших элементов. Оператор module.exports экспортирует модель, позволяя нам использовать ее в других частях нашего приложения.

Шаг 5: Реализация операций CRUD

Теперь давайте реализуем операции CRUD для нашего API. Добавьте следующий код в файл server.js:

const Item = require('./models');

// Create item
app.post('/items', (req, res) => {
  const newItem = new Item(req.body);
  newItem.save((err, item) => {
    if (err) {
      res.status(500).json({ error: err.message });
    } else {
      res.status(201).json(item);
    }
  });
});
// Read items
app.get('/items', (req, res) => {
  Item.find({}, (err, items) => {
    if (err) {
      res.status(500).json({ error: err.message });
    } else {
      res.json(items);
    }
  });
});
// Update item
app.put('/items/:id', (req, res) => {
  const itemId = req.params.id;
  const update = req.body;
  Item.findByIdAndUpdate(itemId, update, { new: true }, (err, item) => {
    if (err) {
      res.status(500).json({ error: err.message });
    } else {
      res.json(item);
    }
  });
});
// Delete item
app.delete('/items/:id', (req, res) => {
  const itemId = req.params.id;
  Item.findByIdAndRemove(itemId, (err, item) => {
    if (err) {
      res.status(500).json({ error: err.message });
    } else {
      res.sendStatus(204);
    }
  });
});

В этом фрагменте кода мы определяем маршруты API для создания, чтения, обновления и удаления элементов. Каждый маршрут обрабатывает соответствующую операцию CRUD, используя модель мангуста, которую мы определили ранее. Надлежащие коды состояния HTTP и обработка ошибок включены в каждый маршрут для обеспечения надежного API.

Шаг 6. Тестирование API

Поздравляем! Вы успешно внедрили CRUD API с помощью Express. Запустите сервер, выполнив следующую команду:

$ node server.js

Теперь вы можете тестировать конечные точки API с помощью таких инструментов, как Postman или cURL. Вот некоторые примеры:

  • Чтобы создать новый элемент, отправьте запрос POST на адрес http://localhost:3000/items, указав сведения об элементе в теле запроса.
  • Чтобы получить все элементы, отправьте запрос GET на http://localhost:3000/items.
  • Чтобы обновить элемент, отправьте запрос PUT на http://localhost:3000/items/{id} с обновленными сведениями об элементе в теле запроса.
  • Чтобы удалить элемент, отправьте запрос DELETE на http://localhost:3000/items/{id}.

Не забудьте заменить {id} фактическим идентификатором элемента, который вы хотите обновить или удалить.

Заключение

В этом руководстве мы рассмотрели процесс создания CRUD API с помощью Express, мощной платформы веб-приложений для Node.js. Мы обсудили концепцию CRUD API и преимущества использования Express, а также прошли пошаговую реализацию API.

Следуя этому руководству, вы теперь обладаете знаниями и навыками для создания надежного API, который может обрабатывать операции создания, чтения, обновления и удаления. Express предоставляет простую, но эффективную основу для создания API, позволяя вам сосредоточиться на основных функциях вашего приложения.

Разработка API с помощью Express открывает целый мир возможностей, позволяя создавать масштабируемые и эффективные веб-сервисы. Так что вперед, запачкайте руки и начните изучать потенциал JavaScript, создав собственный CRUD API с помощью Express.

Не забывайте практиковаться и изучать различные функции и возможности Express, чтобы улучшить свои навыки разработки API. Удачного кодирования!

Примечание. Убедитесь, что вы правильно применяете меры безопасности и проверки подлинности при развертывании API в рабочих средах.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .