我有一个奇怪的错误,因为它只有在json.stringify之后运行json.parse时才会出现。
const fs = require('fs');
const proj = {
name: "karl",
age: 22,
alone: true
};
var json = JSON.stringify(proj);
fs.writeFile('test.json', json, function(err, result) {
if (err) console.log('error', err);
});
//error
const rawdata = fs.readFileSync('test.json','utf8');
let student = JSON.parse(rawdata);
console.log(student);
student.name = 'hugo';
json = JSON.stringify(student);
fs.writeFile('test.json', json, function(err, result) {
if (err) console.log('error', err);
});
当我这样做的时候,我就犯了那个错误。但如果我把这两部分分开做,比如:
const fs = require('fs');
const proj = {
name: "karl",
age: 22,
alone: true
};
var json = JSON.stringify(proj);
fs.writeFile('test.json', json, function(err, result) {
if (err) console.log('error', err);
});
和
const fs = require('fs');
const rawdata = fs.readFileSync('test.json','utf8');
let student = JSON.parse(rawdata);
console.log(student);
student.name = 'hugo';
json = JSON.stringify(student);
fs.writeFile('test.json', json, function(err, result) {
if (err) console.log('error', err);
});
我得到了正常的输出。我犯了什么错?
1条答案
按热度按时间5jdjgkvh1#
任用
fs.writeFileSync()
第一次写入文件时,或将读取文件的代码移动到回调函数中。