Postman Bad Request Ошибка, когда нет синтаксической ошибки

Я пытался отправить почтовый запрос на свой сервер на Postman. Но я получаю ошибку 400 Bad Request Error. В описании ошибки говорится: "Запрос не может быть выполнен из-за неправильного синтаксиса". Однако в моем теле JSON нет неправильного синтаксиса, и другие подобные вопросы не охватывают эту ошибку, возникающую при правильном синтаксисе.

введите здесь описание изображения

Вот как выглядят заголовки:

введите здесь описание изображения

В чем может быть причина происходящего?

Редактировать: Это код серверной части:

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const cors = require('cors');
const mongoose = require('mongoose');
const articleRoutes = express.Router();
const PORT = 4000;

let Article = require('./article.model');

app.use(cors());
app.use(bodyParser.json());

mongoose.connect('mongodb://127.0.0.1:27017/articles', { useNewUrlParser: true, useUnifiedTopology: true });
const connection = mongoose.connection;

connection.once('open', function() {
    console.log("MongoDB database connection established successfully");
});

articleRoutes.route("/content-management-system/add").post((req, res) => {
    let article = new Article(req.body);
    console.log(article);
    article.save()
        .then(article => {
            res.status(200).json({'article': 'article saved successfully'});
        })
        .catch(err => {
            res.status(400).send('adding new article failed');
        });
});

app.use('/', articleRoutes);

app.listen(PORT, function() {
    console.log("Server is running on Port: " + PORT);
});

person Phillip La    schedule 26.01.2021    source источник
comment
Запрос отправляется, и сервер отвечает сообщением, которое вы видите в теле. Postman не добавляет это за вас, поэтому возвращает то, что было реализовано на стороне сервера. Делясь кодом сервера, чтобы люди могли видеть, что на самом деле происходит, вы показываете здесь только одну сторону истории. Кроме того, если вы плохо ведете журнал, вам, возможно, придется взглянуть и на это: D   -  person Danny Dainton    schedule 26.01.2021
comment
@DannyDainton Привет, спасибо за ваш комментарий. Я добавил серверный код.   -  person Phillip La    schedule 26.01.2021


Ответы (1)


Фу, глупая ошибка. Я нашел свой ответ в конце концов! Ответ был в моей строке mongoose.connect, где я помещал статьи, когда они должны быть после mongodb://127.0.0.1:27017/.

Из комментария Дэнни я понял, что описание ошибки 400 Bad Request вводит в заблуждение. Это заставило меня изначально подумать, что проблема была в теле JSON, которое я отправлял, то есть в его синтаксисе. Но проблема может быть не в этом.

Итак, я снова проверил, был ли мой метод сохранения проблемой, из-за которой он всегда по умолчанию использовал оператор catch. Но, похоже, это тоже не проблема.

В конце концов, я обнаружил, что проблема была очень простой. Я случайно вставил статьи вместо статьи в строке mongoose.connect.

Мораль истории: ошибка 400 Bad Request, отображаемая на Postman, может вводить в заблуждение, и проблема может быть не в синтаксисе тела JSON, которое вы передаете в качестве запроса.

person Phillip La    schedule 26.01.2021