JSON输出未正确显示,javascript

时间:2018-05-29 07:29:08

标签: javascript json fs

我在javascript中创建类来输出config.json

const fs = require('fs');

class config {
    static put(input1,input2) {
        let json = {
            input1 , input2 }
        json = JSON.stringify(json);
        fs.writeFile('./config.json', json, (err) => {
            if (!err) {
                console.log('done');
            }
        });
    }
}

config.put('site_name', 'Blog');       
config.put('maintenance', false);   
config.put('age', 30);                  
config.put('meta', {"description": "lorem ipsum"}); 

会像这样输出config.json

{"input1":"meta","input2":{"description":"lorem ipsum"}}

我希望输出config.json

{ input1: 'site_name', input2: 'Blog' }
{ input1: 'maintenance', input2: false }
{ input1: 'age', input2: 30 }
{ input1: 'meta', input2: { description: 'lorem ipsum' } }

2 个答案:

答案 0 :(得分:1)

使用append而不是write

const fs = require('fs');

class config {
    static put(input1,input2) {
        let json = { input1 , input2 };

        json = JSON.stringify(json);

        fs.appendFile('./config.json', json, (err) => {
            if (!err) {
                console.log('done');
            }
        });
    }
} 

答案 1 :(得分:0)

writeFile的默认选项标志是' w'这将覆盖,你需要指定' a'追加。

见这里: https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback和此处的文件系统标志:https://nodejs.org/api/fs.html#fs_file_system_flags