当前位置: 首页 > 面试题库 >

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

闻人宜
2023-03-14
问题内容

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


问题答案:

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

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

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

JSFiddle



 类似资料:
  • 这里我得到的错误是包含循环引用。 使用在客户端javascript中获取的任何方法 <罢工> 或者没有 循环引用?

  • 我有一个包含循环引用的JavaScript对象定义:它有一个引用父对象的属性。 它还有一些我不想传递给服务器的函数。如何序列化和反序列化这些对象? 我读过这样做的最好方法是使用Douglas Crockford的stringify。但是,我在Chrome中遇到以下错误: 将圆形结构转换为JSON 守则: 这是我为这个问题创建的测试用例。这段代码中有一些错误,但基本上我在对象中有对象,并向每个对象传

  • 问题内容: 我有一个包含ajax调用的for循环,并且我正在尝试确定将索引从for循环传递给回调函数的最佳方法。这是我的代码: 当前,由于异步ajax调用,仅传递了arr数组的最后一个值。除了同步运行ajax调用之外,如何将arr数组的每次迭代传递给回调函数? 问题答案: 您可以使用javascript闭包: 或者您可以使用:

  • 我有一个简单的类,如下所示: 但我收到以下错误消息: 检测到服务“App\Algorithm\Calculator”的循环引用,路径:“App\Algorithm\Calculator”- MatchService.php 问题是,但我到底做错了什么?

  • 我需要修改下面的代码,以使用循环与常规foreach循环。 我遇到的问题是将对象传递给foreach循环。我刚开始使用循环-有没有人对此有一些信息? 当前代码 问题是列表将包含3000+项,循环将循环每一项,我需要并行地运行它们。 因此,我想使用函数,但我无法通过传递对象来使其工作。

  • 嘿,伙计们,我目前已经实现了一个路线,负责根据他的请求从我的服务器上检索信息,现在我有兴趣将我的对象转移到坐在我视图中的客户端脚本。我可以使用Res.Render传输对象吗?