尝试对sails.config.global进行字符串化,出现循环结构错误。
尝试对sails.config.global进行字符串化,出现循环结构错误。
我在尝试将一个全局变量转换为字符串时遇到了一个错误:
TypeError: 转换循环结构为JSON。
我知道这个错误的意思,但问题是,是什么导致了循环引用。并且,为什么它会发生在我的自定义变量上?
然后下一个问题是:我如何以在globals.js中创建的方式将对象转换为字符串?
在config/globals.js中:
module.exports.globals = { mystuff: { Url: "http://localhost:8080", APIKey: "2bb67717b99a37e92e59003f93625c9b" } }
在一个钩子初始化中:
module.exports = function (sails) { return { initialize: function(cb) { var str = JSON.stringify(sails.config.globals.mystuff); } } }
问题出现的原因是在sails.config.global中存在循环引用的结构。解决方法是使用JavaScript中的方法来检测和修复循环引用。
循环引用是指对象之间相互引用,形成一个闭环的情况。当尝试将循环引用的对象转换为字符串时,会导致循环结构错误。
为了解决这个问题,可以参考以下链接中的方法来检测和修复循环引用:
Detecting and fixing circular references in JavaScript
此外,还有部分应用程序将对象注入到全局变量中。