Как исправить ошибку с RestClient API?

Создаём новое объявление, через post таким образом:
POST http://localhost:3000/api/offers HTTP/1.1
Content-Type: application/json

{
 "category": ["Разное"],
 "description": "При покупке с меня бесплатная доставка в черте города.",
 "picture": "item03.jpg",
 "title": "Продам новую приставку Sony Playstation 5.",
 "type": "offer",
 "sum": 42698
}


Добавили дополнительную проверку данных:
const { HttpCode } = require(`../constants`);

const offerKeys = [`category`, `description`, `picture`, `title`, `type`, `sum`];

module.exports = (req, res, next) => {
  const newOffer = req.body;
  const keys = Object.keys(newOffer);
  const keysExists = offerKeys.every((key) => keys.includes(key));

  if (!keysExists) {
    res.status(HttpCode.BAD_REQUEST)
      .send(`Bad request`);
  }

  next();
};


Код написан в visual studio code, restclient api установлен в виде расширения. После запуска сервера без ошибок, нажимаю на send request, и выводиться такое сообщение:

HTTP/1.1 400 Bad Request
X-Powered-By: Express
Content-Security-Policy: default-src 'none'
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
Content-Length: 1059
Date: Sat, 31 Oct 2020 13:08:22 GMT
Connection: close


В консоле такая ошибка:
SyntaxError: Unexpected token  in JSON at position 2

Получается выполняется условие if (!keysExists), но почему, если данные одни и те же, и как это исправить?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
poly-titova
@poly-titova Автор вопроса
Проблема была в том, что перед строками JSON были не пробелы, а какие-то другие символы(пустота). Редактор не подчеркнул, вот и не обратила внимание:
{
 "category": ["Разное"],
 "description": "При покупке с меня бесплатная доставка в черте города.",
 "picture": "item03.jpg",
 "title": "Продам новую приставку Sony Playstation 5.",
 "type": "offer",
 "sum": 42698
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы