2015-06-30 4 views
1

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

Я хочу хранить расшифрованный кошелек в сеансе пользователя, так что пользователю не нужно вводить пароль еще раз, но всякий раз, когда я пытаюсь сделать что-то вроде этого (wallet - объект кошелька, возвращаемый API) :

req.session.wallet = wallet; 

я получаю:

TypeError: Converting circular structure to JSON 
    at Object.stringify (native) 
    at MemoryStore.set 

Таким образом, если объект имеет кольцевую структуру, есть способ сохранить ссылку на него в сессии? Почему это происходит?

ответ

1

Вы не можете сериализовать круговую структуру в строку JSON, поэтому ее нельзя хранить в сеансе.

Вам нужно будет удалить все круглые ссылки перед сериализацией в строку JSON.

+0

Итак, я предполагаю, что реализация сеансов пытается стягивать объект, поскольку сеансы хранят строки, правильно? Но не будет ли исключение круговых ссылок мешать функциональности объекта? Разве нет способа сохранить объект в неприкосновенности и заставить его упорствовать в сеансе? – Tarman

+0

В соответствии с: http://stackoverflow.com/questions/7420597/javascript-how-to-save-an-object-with-circular-references, проверьте [JSON-js] (https://github.com/ Дуглас Крокфорд/JSON-JS). Предположительно, он может хранить круговой JSON, используя JSONPath. – timeiscoffee

Смежные вопросы