Node.js:尝试读取json文件时,出现“ FSReqWrap.readFileAfterClose”错误

时间:2018-10-08 22:30:55

标签: javascript node.js json string express

我正在尝试将对象附加到JSON文件。

例如,我有JSON文件,例如:

{
    "_1": {
        "watch" : "undefined"
    },
    "_2": {
        "watch" : "undefined"
    }
}

那是我的app.js不能正常工作的部分:

app.post('/add2', (req, res) => {
    storeAt = path.join(__dirname + '/json/' + req.body.addTo + '.json');

    id = req.body.id;
    i = req.body.i;

    fs.readFile(storeAt, (err, data) => {
        console.log("data: " + data);
        var temp = JSON.parse(data);
        temp = temp.substring(0, temp.length - 2);
        temp += ',\n\t"_' + i + '": {\n\t\t"watch" : "' + id + '"\n\t}\n}';

        fs.writeFile(storeAt, JSON.stringify(temp));

});

所以基本上我想读取文件并将其保存在变量中,然后删除字符的最后一个字符,向其中添加一些新内容并保存。

console.log("data : + data);工作正常; JSON文件的内容显示在控制台上。但是问题出在与.substring一致。我在控制台中收到此错误:

TypeError: temp.substring is not a function
at fs.readFile (C:\...\app.js:56:21)
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:442:3)

我在互联网上找不到任何帮助,而且我不太了解TypeError。有人可以帮忙吗?

0 个答案:

没有答案