Javascript 将数据写入空json文件

Javascript 将数据写入空json文件,javascript,json,typescript,Javascript,Json,Typescript,首先,我在第一次运行之前截断json文件 对于之后的每次运行,我希望继续附加到json文件。对于第一次运行,由于数据为空,我得到“SyntaxError:JSON输入的意外结束” public jsondata = (newdata: string) => { var fs = require('fs'); fs.readFile('output.json', function (err, data) { let json:any = [];

首先,我在第一次运行之前截断json文件

对于之后的每次运行,我希望继续附加到json文件。对于第一次运行,由于数据为空,我得到“SyntaxError:JSON输入的意外结束”

    public jsondata = (newdata: string) => {

    var fs = require('fs');

    fs.readFile('output.json', function (err, data) {

       let json:any = [];
            console.log('some data =' + data + '=');

            if(data === '') {
            json = JSON.parse(newdata);
            json.push(newdata);
            }
            else {
            json = JSON.parse(data);
            json.push(newdata);
            }

        fs.writeFile('output.json', JSON.stringify(json, null, 4), (err) => {
            if (err) throw err;
            console.log('The json file has been saved');
        });
    });
}
而不是

fs.readFile('output.json', function (err, data) {
    if(data === '') {
        json = JSON.parse(newdata);
        json.push(newdata);
    }
原因:

如果output.json为空 从fs.readFile'output.json',函数err,数据{…}, 数据不是空字符串 因此,在代码中,如果数据===始终为false 和 json=json.parsedata生成语法错误:json输入意外结束

fs.readFile('output.json', function (err, data) {
    if(data === '') {
        json = JSON.parse(newdata);
        json.push(newdata);
    }