SyntaxError: Неожиданный токен l в JSON в позиции

Почему я получаю эту ошибку каждый раз, когда использую API (POST)

SyntaxError: неожиданный токен l в JSON в позиции 18 в JSON.parse (<анонимно>) при разборе (/Users/.../Desktop/ecommerceapi/node_modules/body-parser/lib/types/json.js:89:19) в /Users/.../Desktop/ecommerceapi/node_modules/body-parser/lib/read.js:121:18 в invokeCallback (/Users/.../Desktop/ecommerceapi/node_modules/raw-body/index.js:224:16) по завершении (/Users/.../Desktop/ecommerceapi/node_modules/raw-body/index.js:213:7) в IncomingMessage.onEnd (/Users/.../Desktop/ecommerceapi/node_modules/raw-body/index.js:273:7) в IncomingMessage.emit (узел: события: 532: 35) в endReadableNT (узел: внутренний/потоки/читаемый:1346:12) в processTicksAndRejections (узел: внутренний/процесс/task_queues:83:21)

Это весь мой код: (auth.js)

const router = require("express").Router();
const User = require("../models/User");
const CryptoJS = require("crypto-js");
const jwt = require("jsonwebtoken");

//REGISTER
router.post("/register", async (req, res) => {
  const newUser = new User({
    username: req.body.username,
    email: req.body.email,
    password: CryptoJS.AES.encrypt(
      req.body.password,
      process.env.PASS_SEC
    ).toString(),
  });

  try {
    const savedUser = await newUser.save();
    res.status(201).json(savedUser);
  } catch (err) {
    res.status(500).json(err);
  }
});

//LOGIN

router.post('/login', async (req, res) => {
    try{
        const user = await User.findOne(
            {
                userName: req.body.user_name
            }
        );

        !user && res.status(401).json("Wrong User Name");

        const hashedPassword = CryptoJS.AES.decrypt(
            user.password,
            process.env.PASS_SEC
        );


        const originalPassword = hashedPassword.toString(CryptoJS.enc.Utf8);

        const inputPassword = req.body.password;
        
        originalPassword != inputPassword && 
            res.status(401).json("Wrong Password");

        const accessToken = jwt.sign(
        {
            id: user._id,
            isAdmin: user.isAdmin,
        },
        process.env.JWT_SEC,
            {expiresIn:"3d"}
        );
  
        const { password, ...others } = user._doc;  
        res.status(200).json({...others, accessToken});

    }catch(err){
        res.status(500).json(err);
    }

});

module.exports = router;

Я использую Postman, чтобы использовать API для POST этого

{ "username": sultan "password": 12345qwer }

а это index.js:

const express = require("express");
const app = express();
mongoose = require("mongoose")
const dotenv = require("dotenv");
const userRoute = require("./routes/user");
const authRoute = require("./routes/auth");

dotenv.config();

mongoose
.connect(process.env.MONGO_URL)
.then(() => console.info("DB Connection Successfull!"))
.catch((err) => {
    console.info(err);
});

app.use(express.json());
app.use("/api/auth", authRoute);
app.use("/api/users", userRoute);

app.listen(process.env.PORT || 50, () => {
    console.info("Backend server is running!");
});

он должен дать мне информацию о пользователях или «Неправильный пароль», но в ответ выдает указанную выше ошибку!

Это недопустимый JSON. Откуда ты это взял

tkausl 22.03.2022 12:00

можно ли двойные кавычки "sultant" и "12345qwer"?

l4rnaud 22.03.2022 12:17

@tkausl, что вы имеете в виду, не является допустимым JSON, я следил за учебным пособием на YouTube, и это именно то, что написано, это сработало с парнем, который написал этот код, но не со мной. Спасибо за ответ.

Sultan H 22.03.2022 13:16

@ l4rnaud Я пробовал двойные кавычки, но тоже не сработало. Спасибо за ответ.

Sultan H 22.03.2022 13:17
I followed a tutorial on YouTube and that's exactly what's written Значит видео неправильное или видео что-то скрывает. Это просто неверный JSON, и точка.
tkausl 22.03.2022 13:19

@tkausl, не могли бы вы сказать, какая часть кода неверна? Я отредактировал вопрос, пожалуйста, перепроверьте его. Спасибо.

Sultan H 22.03.2022 13:31

@l4rnaud сказал вам, в чем проблема.

tkausl 22.03.2022 13:33
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
7
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

двойные кавычки и запятая отсутствуют { "имя пользователя": "султан", "пароль": "12345 qwer" }

Другие вопросы по теме