【问题标题】:Not able to pass an object in writeFile method无法在 writeFile 方法中传递对象
【发布时间】: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 它写 [对象对象] 但我希望它像这样写 { “请求”:值, “结果”:值, “字段”:值}

【问题讨论】:

    标签: javascript json node.js fs


    【解决方案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){
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2016-08-10
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多