NodeJS 解析匿名Json

368yc8dk  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(106)

在一个项目上工作似乎不能弄清楚这个错误,虽然,应用程序是一个笔记应用程序使用expressjs。我已经得到了它的工作,直到保存一个新的说明,它抛出错误

语法错误:JSON中的意外标记o位于JSON.parse()的位置1

这是我的密码

const express = require('express');
const jsonRoutes = express.Router();
const fs = require('fs').promises;
const uuid = require('uuid');

jsonRoutes.get('/api/notes', async (req, res) => {
    const data = await fs.readFile('db/db.json', 'utf8');
    const notes = JSON.parse(data);
    res.json(notes);
});

jsonRoutes.post('/api/notes', (req, res) => {
    const data = JSON.parse(fs.readFile('db/db.json', 'utf8'));
    const newNote = {
      "title": req.body.title,
      "text": req.body.text,
      "id": uuid.v4(), 
    };
    data.push(newNote);
    fs.writeFile('db/db.json', JSON.stringify(data));
    res.json(newNote);
});

module.exports = jsonRoutes;
hgb9j2n6

hgb9j2n61#

把它弄出来...
readfile已经返回字符串,正在尝试然后解析字符串,也使其异步
如果你有兴趣,请修改代码,供未来的访问者使用。

const express = require('express');
const jsonRoutes = express.Router();
const fs = require('fs').promises;
const uuid = require('uuid');

jsonRoutes.get('/api/notes', async (req, res) => {
    const data = await fs.readFile('db/db.json', 'utf8');
    const notes = JSON.parse(data);
    res.json(notes);
});

jsonRoutes.post('/api/notes', async (req, res) => {
    const data = await fs.readFile('db/db.json', 'utf8');
    const notes = JSON.parse(data);
    const newNote = {
      "title": req.body.title,
      "text": req.body.text,
      "id": uuid.v4(), 
    };
    notes.push(newNote);
    await fs.writeFile('db/db.json', JSON.stringify(notes, null, 2), 'utf8');
    res.json(newNote);
});

module.exports = jsonRoutes;

相关问题