[英]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 正文的語法無關。
我從某處復制了正文。 在復制粘貼過程中,文本中添加了空格之類的東西。 這導致了 400 錯誤。 我“美化”了我的文字並解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.