簡體   English   中英

Postman 沒有語法錯誤時的錯誤請求錯誤

[英]Postman Bad Request Error When There Is No Syntax Error

我一直在嘗試向 Postman 上的服務器發送發布請求。但我一直收到 400 Bad Request Error。 錯誤的描述是“由於語法錯誤,請求無法完成。” 但是,我的JSON body沒有任何語法錯誤,其他類似的問題不包括語法正確時發生的錯誤。

在此處輸入圖像描述

這是標頭的樣子:

在此處輸入圖像描述

發生這種情況的原因可能是什么?

編輯:這是服務器端的代碼:

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);
});

唷,愚蠢的錯誤。 我終於找到了答案。 答案在我的 mongoose:connect 行中,當它應該是“文章”時,我將“文章”放在“mongodb.//127.0.0:1.27017/”之后。

從 Danny 的評論中,我意識到“400 Bad Request”錯誤描述有點誤導。 這讓我最初認為問題出在我發送的 JSON 主體,即它的語法上。 但這可能不是問題。

因此,我再次檢查了我的保存方法是否是導致它始終默認為 catch 語句的問題。 但是,這似乎也不是問題所在。

最終,我發現問題非常簡單。 我不小心在 mongoose.connect 行中輸入了“文章”而不是“文章”。

故事的寓意: Postman 上顯示的“400 Bad Request”錯誤可能具有誤導性,問題可能與您作為請求傳遞的 JSON 正文的語法無關。

  • 有時它可能是愚蠢的錯誤,比如在應該是 post 請求的時候發出了 get 請求。
  • 其他時候它可能是正文中的不正確語法。
  • 或者如上所述,端點有錯字。

我從某處復制了正文。 在復制粘貼過程中,文本中添加了空格之類的東西。 這導致了 400 錯誤。 我“美化”了我的文字並解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM