首页 > 解决方案 > Uncaught (in promise) SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

问题描述

我正在使用 MERN 堆栈和 Redux,当我尝试从 MongoDb 获取数据时,我不断收到错误“未捕获(承诺中)语法错误:JSON.parse:JSON 数据的第 1 行第 1 列的意外字符”我已经尝试了一切并且无法弄清楚是什么原因造成的。谁能看到我错过了什么?我对此真的很陌生,所以请放轻松。:) 我尝试使用来自外部 JSON 占位符 URL 的数据,并且一切都按预期进行,但是当我切换到我自己的数据时它不起作用。

My action is:

export const fetchSubjects = () => (dispatch) => {
  console.log("fetching called");
  fetch("/api/subjects/Subject")
    .then((res) => res.json())
    .then((subjects) =>
      dispatch({
        type: FETCH_SUBJECTS,
        subjects: subjects,
      })
    );
};


My model is:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const SubjectSchema = new Schema({
  title: {
    type: String,
    required: true,
    unique: true,
  },
  summary: {
    type: String,
    required: true,
  },
  description: {
    type: String,
    required: true,
  },
  rating: {
    type: Number,
    default: 0,
  },
  author: {
    type: mongoose.ObjectId,
    default: this.users,
  },
  comments: [mongoose.ObjectId],
  date: {
    type: Date,
    default: Date.now,
  },
});

module.exports = mongoose.model("subjects", SubjectSchema);


My api is:

const express = require("express");
const subjectRouter = express.Router();
const validateSubjectInput = require("../../validation/subjectVal");
const Subject = require("../../models/Subject");

subjectRouter.post("/subject", (req, res) => {
  // Form validation
  const { errors, isValid } = validateSubjectInput(req.body);

  if (!isValid) {
    console.log("Hitting");
    return res.status(400).json(errors);
  }

  Subject.findOne({ title: req.body.title }).then((subject) => {
    if (subject) {
      return res.status(400).json({ title: "Title already exists" });
    } else {
      const newSubject = new Subject({
        title: req.body.title,
        summary: req.body.summary,
        description: req.body.description,
      });
      newSubject
        .save()
        .then((subject) => res.json(subject))
        .catch((err) => console.log(err));
    }
  });
});

module.exports = subjectRouter;

标签: javascriptjsonreact-redux

解决方案


推荐阅读