首页 > 解决方案 > 节点js中位置0的json中的语法错误意外令牌u

问题描述

在发布任何数据时,我在节点 js 的位置 0 处的 json 中收到语法错误意外令牌 u。在邮递员中,首先我登录并从中获取令牌。并在发布任何博客之前设置标头令牌授权。但我总是得到意外的令牌 - 在位置 0 的 JSON

这是与发布博客相关的代码

const Blog = require("../models/blog");
const Category = require("../models/category");
const Tag = require("../models/tags");
const formidable = require("formidable");
const slugify = require("slugify");
const stripHtml = require("string-strip-html");
const _ = require("lodash");
const { errorHandler } = require("../helpers/dbErrorHandler");
const fs = require("fs");

exports.create = (req, res) => {
  let form = new formidable.IncomingForm();
  form.keepExtensions = true;
  form.parse(req, (err, fields, files) => {
    if (err) {
      return res.status(400).json({
        error: "Image could not upload",
      });
    }

    const { title, body, categories, tags } = fields;

    let blog = new Blog();
    blog.title = title;
    blog.body = body;
    blog.slug = slugify(title).toLowerCase();
    blog.mtitle = `${title} | ${process.env.APP_NAME}`;
    blog.mdesc = stripHtml(body.substring(0, 160));
    blog.postedBy = req.user._id;

    if (files.photo) {
      if (files.photo.size > 10000000) {
        return res.status(400).json({
          error: "Image should be less then 1mb in size",
        });
      }
      blog.photo.data = fs.readFileSync(files.photo.path);
      blog.photo.contentType = files.photo.type;
    }

    blog.save((err, result) => {
      if (err) {
        return res.status(400).json({
          error: errorHandler(err),
        });
      }
      res.json(result);
    });
  });
};

服务器.js

const express = require("express");
const morgan = require("morgan");
const bodyParser = require("body-parser");
const cookieParser = require("cookie-parser");
const cors = require("cors");
const mongoose = require("mongoose");
require("dotenv").config();
// bring routes
const blogRoutes = require("./routes/blog");
const authRoutes = require("./routes/auth");
const userRoutes = require("./routes/user");
const categoryRoutes = require("./routes/category");
const tagRoutes = require("./routes/tags");

// app
const app = express();

// db
mongoose
  .connect(process.env.DATABASE_CLOUD, {
    useNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then(() => console.log("DB connected"))
  .catch((err) => {
    console.log(err);
  });

// middlewares
app.use(morgan("dev"));
app.use(bodyParser.json());
app.use(cookieParser());
// cors
if (process.env.NODE_ENV === "development") {
  app.use(cors({ origin: `${process.env.CLIENT_URL}` }));
}
// routes middleware
app.use("/api", blogRoutes);
app.use("/api", authRoutes);
app.use("/api", userRoutes);
app.use("/api", categoryRoutes);
app.use("/api", tagRoutes);

// port
const port = process.env.PORT || 8000;
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

这是我得到的错误,很难确定我是从哪里得到错误的。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Error</title>
    </head>
    <body>
        <pre>SyntaxError: Unexpected token - in JSON at position 0
            <br> &nbsp; &nbsp;at JSON.parse (&lt;anonymous&gt;)
            <br> &nbsp; &nbsp;at createStrictSyntaxError (C:\Users\763850\Downloads\blog\backend\node_modules\body-parser\lib\types\json.js:158:10)
            <br> &nbsp; &nbsp;at parse (C:\Users\763850\Downloads\blog\backend\node_modules\body-parser\lib\types\json.js:83:15)
            <br> &nbsp; &nbsp;at C:\Users\763850\Downloads\blog\backend\node_modules\body-parser\lib\read.js:121:18
            <br> &nbsp; &nbsp;at invokeCallback (C:\Users\763850\Downloads\blog\backend\node_modules\raw-body\index.js:224:16)
            <br> &nbsp; &nbsp;at done (C:\Users\763850\Downloads\blog\backend\node_modules\raw-body\index.js:213:7)
            <br> &nbsp; &nbsp;at IncomingMessage.onEnd (C:\Users\763850\Downloads\blog\backend\node_modules\raw-body\index.js:273:7)
            <br> &nbsp; &nbsp;at IncomingMessage.emit (events.js:327:22)
            <br> &nbsp; &nbsp;at endReadableNT (_stream_readable.js:1220:12)
            <br> &nbsp; &nbsp;at processTicksAndRejections (internal/process/task_queues.js:84:21)
        </pre>
    </body>
</html>

标签: javascriptnode.js

解决方案


推荐阅读