簡體   English   中英

JSON 輸入 node.js 意外結束

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM