我一直试图在邮递员上向我的服务器发送邮件请求。但我得到了400坏的请求错误。对错误的描述说:“由于语法错误,请求无法满足。”但是,我的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);
});
发布于 2021-01-26 16:35:48
喔,愚蠢的错误。我终于找到了答案!答案是在我的mongoose.connect行中,当它应该是"mongodb://127.0.0.1:27017/“之后应该是”文章“。
从丹尼的评论中,我意识到"400坏请求“的错误描述有点误导。这让我最初认为问题在于我发送的JSON主体,也就是它的语法。但这可能不是问题所在。
因此,我再次检查了我的保存方法是否是导致它始终默认为catch语句的问题。但是,这似乎也不是问题所在。
最后,我发现问题很简单。我不小心在mongoose.connect行中插入了“文章”而不是“文章”。
故事的寓意:在邮递员上显示的"400坏请求“错误可能有误导性,问题可能不在于您作为请求传入的JSON主体的语法。
发布于 2022-06-01 07:22:15
。
https://stackoverflow.com/questions/65904332
复制相似问题