2016-07-25 10 views
-1

У меня есть сценарий, в котором я пытаюсь настроить переменную сеанса в одном файле node.js, а затем получить доступ к той же переменной сеанса в другом узле.js.Доступ к переменным сеанса между различными файлами node.js

Я не уверен, должен ли я требовать экспресс дважды, один раз в каждом файле node.js.

Кто-нибудь знает, как установить переменную сеанса в одном файле node.js, а затем вызвать функцию в другом файле node.js для доступа к той же переменной сеанса?

Любые предложения были бы очень признательны.

+0

Существует так много способов совместного использования значения между двумя различными модулями. Значение сеанса как часть Express-сервера обычно используется совместно несколькими обработчиками маршрутов или обработчиками промежуточного программного обеспечения. Нам нужно будет увидеть, как ваш код даст вам ответ, поскольку вы в основном спрашиваете, как работают Express и модули. –

ответ

0

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

Итак, если вы в середине обработки запроса и хотите использовать некоторые функции в другом модуле, а другая функция хочет получить доступ к состоянию сеанса для текущего запроса, тогда вы обычно просто передаете объект req метод другого модуля, чтобы он мог получить доступ к сеансу, связанному с этим запросом.

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


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

Таким образом, сеанс имеет смысл только в контексте конкретного пользователя и обычно находится в контексте конкретного запроса, который дает вам прямой доступ к сеансу. Итак, если вам нужно использовать функцию в другом модуле, и эта функция нуждается в доступе к сеансу, просто передайте либо объект req самого сеанса пользователя, либо другой метод в качестве аргумента для вызова метода.


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