没有语法错误时的 Postman Bad Request 错误
Postman Bad Request Error When There Is No Syntax Error
我一直在尝试向 Postman 上的服务器发送 post 请求。但是我一直收到 400 Bad Request Error。错误的描述是“由于语法错误,请求无法完成。”但是我的JSONbody并没有语法错误,其他类似的问题不包括语法正确时出现的这个错误。
这是 headers 的样子:
发生这种情况的原因可能是什么?
编辑:
这是服务器端的代码:
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 行中,我把“articles”放在“mongodb://127.0.0.1:27017/”之后,而它应该是“article”。
从 Danny 的评论中,我意识到“400 Bad Request”错误描述有点误导。这让我最初认为问题出在我发送的 JSON 主体上,即它的语法。但这可能不是问题。
所以,我再次检查了我的保存方法是否是导致它始终默认为 catch 语句的问题。但是,这似乎也不是问题。
最后,我发现问题其实很简单。我不小心在 mongoose.connect 行中输入了“文章”而不是“文章”。
故事的寓意:Postman 上显示的“400 Bad Request”错误可能具有误导性,问题可能与您传入的 JSON 正文的语法无关根据要求。
- 有时可能会犯一些愚蠢的错误,比如在
应该是 post 请求。
- 其他时候正文中的语法可能不正确。
- 或者如上所述,端点打字错误。
我一直在尝试向 Postman 上的服务器发送 post 请求。但是我一直收到 400 Bad Request Error。错误的描述是“由于语法错误,请求无法完成。”但是我的JSONbody并没有语法错误,其他类似的问题不包括语法正确时出现的这个错误。
这是 headers 的样子:
发生这种情况的原因可能是什么?
编辑: 这是服务器端的代码:
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 行中,我把“articles”放在“mongodb://127.0.0.1:27017/”之后,而它应该是“article”。
从 Danny 的评论中,我意识到“400 Bad Request”错误描述有点误导。这让我最初认为问题出在我发送的 JSON 主体上,即它的语法。但这可能不是问题。
所以,我再次检查了我的保存方法是否是导致它始终默认为 catch 语句的问题。但是,这似乎也不是问题。
最后,我发现问题其实很简单。我不小心在 mongoose.connect 行中输入了“文章”而不是“文章”。
故事的寓意:Postman 上显示的“400 Bad Request”错误可能具有误导性,问题可能与您传入的 JSON 正文的语法无关根据要求。
- 有时可能会犯一些愚蠢的错误,比如在 应该是 post 请求。
- 其他时候正文中的语法可能不正确。
- 或者如上所述,端点打字错误。