无法在 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() 上传递回调?

Response对象

无法在 Intent 中传递自定义对象:方法 Put Extra 对于 Intent 类型不明确

fs.writeFile() 在关闭脚本时写入 [object, object] 而不是实际的对象

MFC 串口 WriteFile() 崩溃