javascript - 节点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> at JSON.parse (<anonymous>)
<br> at createStrictSyntaxError (C:\Users\763850\Downloads\blog\backend\node_modules\body-parser\lib\types\json.js:158:10)
<br> at parse (C:\Users\763850\Downloads\blog\backend\node_modules\body-parser\lib\types\json.js:83:15)
<br> at C:\Users\763850\Downloads\blog\backend\node_modules\body-parser\lib\read.js:121:18
<br> at invokeCallback (C:\Users\763850\Downloads\blog\backend\node_modules\raw-body\index.js:224:16)
<br> at done (C:\Users\763850\Downloads\blog\backend\node_modules\raw-body\index.js:213:7)
<br> at IncomingMessage.onEnd (C:\Users\763850\Downloads\blog\backend\node_modules\raw-body\index.js:273:7)
<br> at IncomingMessage.emit (events.js:327:22)
<br> at endReadableNT (_stream_readable.js:1220:12)
<br> at processTicksAndRejections (internal/process/task_queues.js:84:21)
</pre>
</body>
</html>
解决方案
推荐阅读
- c# - 希望将复杂的 json 模式转换为 C# 类,但是 API 返回的类型并不总是匹配
- python - 使用 Selenium 有时我的索引超出范围,而其他时候,没有 - PYTHON
- database - 如何设置适当的 MongoDB 副本集备份和警报系统
- python - 我应该在 Airflow 中使用 Python 原生多线程还是多任务?
- javascript - Vue,访问不同 v-for 循环中的数据
- python - 从另一个数据框中注册的技能中分配数据框的元素
- terraform - Terraform vSphere 新模板重新创建现有虚拟机
- javascript - 使用 scssphp 编译器编译多个文件 scss 文件
- javascript - 访问顶部“对象可能为‘空’”的属性时出现新错误。升级到 TS 4.4.3 后
- python - Optional[Union] 与 Union[None] 的首选 python 输入语法