I'm trying to pass an object with circular references from node.js server to client-side javascript.
Server (node.js):
var object = { circular: object }
//....
app.get('/', function(req, res){
res.render('index.jade', {object: object});
});
Client-side Jade/Javascript
script var object = !{JSON.stringify(object)};
Here I get the error that object
contains circular references.
Any way to get the object
in client-side javascript, with
or without
circular references?
Douglas Crockford has a solution for this that I have successfully used to solve this problem before: Cycle.js
instead of just using stringify
and parse
you would first call decycle
and restore with retrocycle
var jsonString = JSON.stringify(JSON.decycle(parent));
var restoredObject = JSON.retrocycle(JSON.parse(jsonString));