Как я могу создать переменные сеанса в Node.JS без экспресс? - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь построить CMS на Node.JS, и до сих пор мне удалось собрать все только с помощью модуля MySQL.Я хотел бы продолжить сборку всех модулей ядра CMS без использования внешних библиотек, таких как Express.Сейчас я работаю над сессией для целей входа в систему.К настоящему времени я могу создавать файлы cookie с заголовком Set-Cookie, где я храню некоторую информацию о пользователе, чтобы распознать его сеанс, когда он / она загружает все страницы сайта, но я все еще не могу найти какой-либо способ создания переменных сеансабез использования Express или других структур

1 Ответ

1 голос
/ 25 июня 2019

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

И главное преимущество использования node.js в первую очередь - это возможность использовать огромную библиотеку существующего кода, доступного через NPM и Github.


Концептуально, вот как работает сеанс в мире клиент / сервер node.js / веб-браузера.

  1. Входящий запрос от клиента на веб-сервер.
  2. Сервер создает какое-то гарантированное уникальное значение cookie и устанавливает его в качестве cookie в ответе.
  3. Сервер также создает объект сеанса на стороне обслуживания и помещает этот объект в некоторое хранилище данных со значением cookie сеанса в качестве индекса в этом хранилище данных.
  4. Теперь каждый раз, когда от того же клиента поступает будущий запрос, он будет сопровождаться этим файлом cookie сеанса.
  5. При каждом входящем запросе сервер может получить значение cookie сеанса, использовать его в качестве ключа для поиска соответствующего объекта сеанса и получить его.
  6. Затем любой обработчик запроса может прочитать данные из объекта сеанса или записать данные в объект сеанса.
  7. Таким образом вы можете сохранять данные, связанные с конкретным клиентом, безопасными и безопасными на сервере и использовать их от одного запроса к другому.

Если вы собираетесь реализовать свою собственную систему сеансов, вы должны иметь возможность создавать эти уникальные файлы cookie сеанса и создавать своего рода хранилище сеансов (может быть что угодно, от объекта Map в памяти до базы данных), реализовывать сеанс очистка хранилища по истечении срока действия и сеанса, а затем предоставление соответствующих функций промежуточного программного обеспечения или служебных программ, которые упрощают использование при любом отдельном запросе http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...