【发布时间】:2021-06-04 20:43:59
【问题描述】:
我正在尝试写入现有的 JSON,我注意到我应该读取文件插入新项目然后再次写入,它在大多数情况下都可以正常工作,但有时我会收到此错误“JSON 输入意外结束at parse()" ,删除json中的空洞数据。
app.post(APIClonePath,(req,res)=>{
const body = req.body
let cloneTicket:Ticket = body.ticket
let ticketID = body.id
let fs = require('fs')
// @ts-ignore
fs.readFile('./data.json',(err,data) =>{
if(err){
throw new Error('ERROR in reading JSON')
// res.send(false)
}
let ticketsInJSON = JSON.parse(data)
let indexOfOriginTicket
for(let index = 0; index < ticketsInJSON.length ; index++){
if(ticketsInJSON[index].id.valueOf() === ticketID){
indexOfOriginTicket = index
break
}
}
// @ts-ignore
ticketsInJSON.splice(indexOfOriginTicket,0,cloneTicket)
let writingArray = JSON.stringify(ticketsInJSON)
writeFile('./data.json',writingArray,function (){})
})
res.send(true)
})
【问题讨论】:
-
可能是数据为空,如果为空则检查空数据不应用解析。收到数据后添加控制台日志查看数据。
标签: javascript node.js json typescript