你可以在会话中存储循环对象吗?

我正在使用Blocktrail的API来pipe理比特币钱包。 这个API返回一个钱包对象,我猜它里面包含循环引用。

我想在用户的会话中存储解密的钱包,以便用户不必再次input密码,但每当我试图做这样的事情( wallet是由API返回的钱包对象):

 req.session.wallet = wallet; 

我得到:

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

所以,如果一个对象有一个循环结构,有没有办法在会话中存储对它的引用? 为什么会发生?

您不能将循环结构序列化为JSONstring,因此无法将其存储在会话中。

在序列化为JSONstring之前,您将不得不除去所有的循环引用。