无法在 writeFile 方法中传递对象
Posted
技术标签:
【中文标题】无法在 writeFile 方法中传递对象【英文标题】:Not able to pass an object in writeFile method 【发布时间】:2013-05-08 11:05:25 【问题描述】:我想写入 json 文件。我想写一个我正在传递的对象 这是代码
path.exists(logfile_name, function(exists)
if (!exists)
var jsonObject= "req": req,
"result": result ,
"fields": fields ;
fs.writeFile(logfile_name ,jsonObject,function(err)
if(err)
console.log("error is: " + err)
else
console.log("no error found");
);
);
在 logfile_name 它写 [对象对象] 但我希望它像这样写 “请求”:值, “结果”:值, “字段”:值
【问题讨论】:
【参考方案1】:如果您不将字符串或缓冲区传递给writeFile
,则会调用您传递的toString
函数。在您的情况下,它返回 "[object Object]"
。
你必须自己转换它:
fs.writeFile(logfile_name, JSON.stringify(jsonObject), function(err)
我建议不要将 javascript 对象变量命名为“jsonObject”:它可能会在什么是对象和什么是 JSON(即保存对象序列化的字符串)之间造成混淆。
【讨论】:
它给出一个错误:TypeError: Converting circular structure to JSON @dystroy 嗯,你的目的是什么?您不能将圆形对象转换为 JSON。除了使用一些库从循环引用中修剪对象外,那将是不可逆的转换。 我所做的是 fs.writeFile(logfile_name,JSON.stringify(method:"logic" ,Date:Date(), null, 4), function(err)以上是关于无法在 writeFile 方法中传递对象的主要内容,如果未能解决你的问题,请参考以下文章
async/await 无法与 fs.writeFile 一起正常工作
为啥节点 10 强制在 fs.writeFile() 上传递回调?
无法在 Intent 中传递自定义对象:方法 Put Extra 对于 Intent 类型不明确