2015-03-06 2 views
6

Я пытаюсь перезапустить и поддерживать сеанс с помощью nodemon, но при перезапуске сеанс уничтожается. Интересно, есть ли способ сохранить жизнь с nodemon или другим узлом js библиотечная сессия.Express JS Keep Session Alive При перезапуске

скрипты «: { // "Пуск": "узел ./bin/www" "Пуск": "nodemon ./bin/www" }

Спасибо за ваше время ..

+1

На какой сессии вы говорите? Пользовательский сеанс? Если это так, вам понадобится внешний Session-Storage - может быть любая база данных, например MongoDB. – Charminbear

+1

Предполагая, что вы имеете в виду модуль сеанса пользователя для HTTP-сервера, вам необходимо использовать постоянное хранилище, например базу данных. Если вы используете ['express-session'] (https://www.npmjs.com/package/express-session), вы можете настроить это с помощью опции [' store'] (https: //www.npmjs .com/пакет/экспресс-сессия # магазин). Для этого существует [множество доступных пакетов] (https://www.npmjs.com/search?q=express+session), в зависимости от конкретной базы данных, которую вы хотите использовать. –

ответ

2

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

https://github.com/expressjs/cookie-session

Не может быть хорошим решением в долгосрочной перспективе, но поможет вам приступить к работе.

4

Для того, чтобы сохраняться сессии, существует два подхода:

  1. Используйте некоторые постоянные магазин

  2. Использование JSON веб-токены

Для реализации упорную сессия, y ou может использовать хранилище сеансов MongoDB или хранилище сеансов Redis.

Если вы хотите использовать redis, воспользуйтесь connect-redis пакетом npm. Если вы хотите использовать MongoDb в качестве хранилища сеансов, используйте connect-mongo npm package

Есть некоторые настройки, которые вам нужно сделать в app.js/server.js. В одном из моих демо я использую Redis Session store с PassportJS, если вы ищете пример, не стесняйтесь смотреть here.

Если вы хотите использовать JSON web tokens, существует множество различных реализаций. Я использую jsonwebtoken. Я реализовал это, используя PassportJS, ExpressJS и AngularJS в передней части End. Например, посмотрите here. Токены кодируются и хранятся в локальном хранилище браузера с помощью секретного ключа.

Я бы предложил вам пойти на токены JSON, прочитать его подробно, потому что именно так развиваются большинство основных веб-приложений. Дай мне знать, если тебе еще понадобится помощь.

+0

Можете ли вы, пожалуйста, связаться со мной в jwt, как вы упорствуете в сессиях, я имею в виду, что вы должны их где-то хранить? –

+0

Вы можете сохранить это локальное хранилище браузера при входе пользователя в систему и его удалении при выходе пользователя из системы. Когда пользователи посещают URL-адрес, проверьте, действительно ли сеанс. Также важным случаем является передача токена для всех обратных вызовов API. – NarendraSoni

+0

приятный ответ, одобренный, спасибо –