将循环引用的对象从服务器传递到客户端JavaScript,同时保持循环

我试图从node.js服务器的循环引用传递一个对象到客户端JavaScript。

服务器(node.js):

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

客户端Jade / Javascript

 script var object = !{JSON.stringify(object)}; 

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

任何方式来获得object在客户端JavaScript, 或没有循环引用?

道格拉斯·克罗克福德有一个解决scheme,我已经成功地用来解决这个问题: Cycle.js

而不是只使用stringifyparse你会首先调用decycledecycle恢复

 var jsonString = JSON.stringify(JSON.decycle(parent)); var restoredObject = JSON.retrocycle(JSON.parse(jsonString)); 

的jsfiddle