Зарегистрируйтесь, чтобы продолжить обучение

Хранение данных JS: Веб-разработка

Среди сайтов выделяют две категории:

  • Статические сайты состоят из готовых наборов HTML-страничек и не содержат программного кода на бэкенде. Например, так сделаны гайды Хекслета
  • Динамические сайты формируют свои странички на основе информации, которую разработчики и пользователи сайта добавляют в базу данных. Наглядные примеры — соцсети или почтовые сервисы

Дальше по курсу мы будем создавать свои первые динамические сайты, но с одной особенностью. Вместо использования полноценной базы данных, мы будем работать с объектами в локальном окружении. Они имитируют работу с базой данных, но хранят все в памяти работающего приложения. Это позволит сохранять данные между запросами к сайту, но с учетом того, что они пропадут после рестарта приложения.

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

Пример использования:

import _ from 'lodash'

const state = {
  courses: [],
  users: [],
}

app.post('/course', (req, res) => {
  const course = { name: 'First Course', description: 'description', id: _.uniqueId() } // пример данных, позже мы научимся получать данные из формы
  state.courses.push(course)
  res.send(course)
})

app.delete('/course', (req, res) => {
  const firstCourse = state.courses.find(course => course.name === 'First Course')
  // Это одно и тоже course === firstCourse
  state.courses = _.omitBy(state.courses, course => course.id === firstCourse.id)
  res.send(firstCourse.id)
})

// В случае пользователей все тоже самое
app.post('/users', (req, res) => {
  const user = { name: 'Mike', email: 'mike@email.com', id: _.uniqueId() }
  state.users.push(user)
  res.send(user)
})

app.delete('/users', (req, res) => {
  const firstUser = state.users.find(user => user.name === 'Mike')
  state.users = _.omitBy(state.users, user => user.id === firstUser.id)
  res.send(firstUser.id)
})

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff