将具有循环引用的对象从服务器传递到客户端Javascript,同时保留循环

lag*_*lex 4 javascript circular-reference node.js express pug

我正在尝试将带有循环引用的对象从node.js服务器传递到客户端javascript.

服务器(node.js):

var object = { circular: object }
//....
app.get('/', function(req, res){    
    res.render('index.jade', {object: object});
});
Run Code Online (Sandbox Code Playgroud)

客户端Jade/Javascript

script var object = !{JSON.stringify(object)};
Run Code Online (Sandbox Code Playgroud)

在这里,我得到object包含循环引用的错误.

没有 循环引用的任何方式来获取object客户端javascript ?

Pre*_*n S 10

道格拉斯·克罗克福德(Douglas Crockford)为此解决了这个问题的解决方案:Cycle.js

而不只是使用stringify,parse你将首先调用decycle和恢复retrocycle

var jsonString = JSON.stringify(JSON.decycle(parent));
var restoredObject = JSON.retrocycle(JSON.parse(jsonString));
Run Code Online (Sandbox Code Playgroud)

的jsfiddle