一尘不染

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

node.js

我正在尝试将具有循环引用的对象从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,
或没有 循环引用?


阅读 173

收藏
2020-07-07

共1个答案

一尘不染

道格拉斯·克罗克福德(Douglas
Crockford)对此有一个解决方案,我之前已经成功地使用它来解决此问题:Cycle.js

而不是仅仅使用stringifyparse您将首先decycle使用retrocycle

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

JSFiddle

2020-07-07