我从文件中加载 JSON 作为字符串,尝试将其解析回 JSON 并作为响应发送:
router.get('/todos', (req,res) =>{
let todos = fs.readFile('todos.json', 'utf8',(err, data) =>{
if (err) throw err
res.send(JSON.parse(todos))
})
})
我的 todos.json 文件:
{
"todos": [
{
"id": 1,
"text": "task number 1",
"priority": 3,
"done": false
},
{
"id": 2,
"text": "task number 2",
"priority": 3,
"done": false
},
{
"id": 3,
"text": "task number 3",
"priority": 3,
"done": false
},
{
"id": 4,
"text": "task number 4",
"priority": 3,
"done": false
},
{
"id": 5,
"text": "task number 5",
"priority": 3,
"done": false
}
]
}
但是我收到此错误:
未定义 ^
SyntaxError:在 fs.readFile (/Users/mgonline/Desktop/programs/assessment/node-todo/routes/api/v1/todo.js:11:17) 的 JSON.parse () 位置 0 处的 JSON 中的意外标记 u在 FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
我不知道为什么,但是当我 console.log 从文件中获取这个字符串时,我的程序似乎通过在集合数组中的最后一个对象之后添加一个逗号来稍微改变它:
{
"id": 5,
"text": "task number 5",
"priority": 3,
"done": false
},
据说这会引起这个错误。我应该以不同的方式重写我的 JSON 以避免冲突吗?
喵喵时光机
猛跑小猪
慕容森
相关分类