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

HTTP-запросы

HTTP (протокол передачи гипертекста) — это протокол, используемый для связи между веб-клиентам и сервером.

В программировании серверной части вам часто потребуется обрабатывать запросы HTTP, такие как запросы GET, POST, PUT и DELETE. Вот пример обработки запроса GET в Express:

app.get('/hello', function(req, res) {
   res.send('Привет, мир!');
});

В этом простом примере мы используем Express для создания маршрута, который обрабатывает запросы GET к пути «/hello». Когда на этот путь делается запрос GET, сервер отвечает сообщением «Hello, World!».

База данных

Базы данных используются для хранения и извлечения данных в веб-приложениях.

В программировании серверной части вы часто будете взаимодействовать с базами данных, используя SQL (язык структурированных запросов) или базы данных NoSQL, такие как MongoDB. Вот пример подключения к базе данных MongoDB в Express:

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/my_database', {useNewUrlParser: true});

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

В этом примере мы используем Mongoose (ORM для MongoDB) для подключения к локальной базе данных MongoDB с именем my_database. Мы также записываем сообщение в консоль после установления соединения.

API

API (интерфейсы прикладного программирования) позволяют различным частям веб-приложения взаимодействовать друг с другом.

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

app.get('/api/todos', function(req, res) {
  Todo.find(function(err, todos) {
    if (err) return console.error(err);
    res.send(todos);
  });
});

В этом примере мы создаем конечную точку API, которая возвращает список задач, хранящихся в базе данных. Мы используем Mongoose для запроса базы данных и возврата результатов в ответе.

Функции

Функции используются для группировки набора операторов, выполняющих определенную задачу.

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

app.post('/api/todos', function(req, res) {
  const newTodo = new Todo({
    title: req.body.title,
    completed: false
  });
  newTodo.save(function(err) {
    if (err) return console.error(err);
    res.send(newTodo);
  });
});

Переменные

Переменные используются для хранения данных в памяти для последующего использования.

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

let port = 3000;
app.listen(port, function() {
  console.log('Server listening on port ' + port);
});

В этом примере мы определяем переменную с именем «порт» для хранения номера порта для нашего сервера Express. Затем мы используем метод «прослушивания», чтобы запустить сервер и записать в консоль сообщение, указывающее, какой порт прослушивает сервер.

Циклы

Циклы используются для многократного выполнения набора операторов.

В бэкэнд-программировании вы можете использовать циклы для перебора массивов или других коллекций данных. Вот пример использования цикла для возврата списка задач из базы данных:

app.get('/api/todos', function(req, res) {
  Todo.find(function(err, todos) {
    if (err) return console.error(err);
    const todoTitles = [];
    for (let i = 0; i < todos.length; i++) {
      todoTitles.push(todos[i].title);
    }
    res.send(todoTitles);
  });
});

В этом примере мы используем цикл для перебора массива задач, возвращаемых из базы данных с помощью Mongoose. Мы помещаем заголовок каждой задачи в новый массив с именем «todoTitles». Затем мы отвечаем массивом todoTitles.

Заключение

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

 


Warning: Undefined variable $aff_bottom_mark in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 81

Warning: Undefined variable $aff_bottom_info in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 85