[英]Unexpected end of JSON input node.js
我有一个奇怪的错误,因为它只在我在 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);
});
我得到一个正常的输出。 我的错误是什么?
第一次写入文件时使用fs.writeFileSync()
,或者将读取文件的代码移动到回调函数中。
onst 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); return; } 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); }); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.