gpt4 book ai didi

Javascript Express mongodb服务器无法从发布请求中获取数据

转载 作者:行者123 更新时间:2023-12-03 02:30:55 24 4
gpt4 key购买 nike

我正在尝试设置一个非常简单的 JavaScript 服务器,但是我什至无法从发布请求中正确获取数据!

这就是我正在做的事情。我已经注释了哪些有效,哪些无效。基本上除了 post 请求之外的所有内容都可以完美运行。不幸的是,请求正文始终为空,导致垃圾信息。

const MongoClient = require('mongodb').MongoClient;
const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.urlencoded({ extended: false }))


const mongoUrl = '<DBAddress Goes Here>';
MongoClient.connect(mongoUrl, (err, mongoDb) => {
if(!err) {
db = mongoDb;
console.log("Connected correctly to server");//This always happen successfully
}
});

app.listen(80);


app.get('/test', function(req, res) {
res.json({ data1: 11, data2: 4, data3: 9 }); //This always works!
});


app.post('/update', function(req, res) {
const params = req.body;
console.log(req.body);//Empty
console.log("Parameters");
const newReport = {
id: params.id,
data: params.data
};
console.log(newReport);//Nothing is put in here
});

我正在 Postman 中测试此帖子请求,使用 website.com/update 作为地址,并在帖子正文部分中使用正确的字段。

最佳答案

您需要解析请求正文才能获取 req.body 中的正文。

由于您已经在使用 body-parser 包,只需在 urlEncoded 中间件后面添加以下行即可。并记住中间件在 Express 中的顺序。

app.use(bodyParser.json());

在此之后添加上面的行

app.use(bodyParser.urlencoded({ extended: false }))

并确保您以 JSON 格式发送数据,因为默认 postman 以纯格式发送数据

enter image description here

关于Javascript Express mongodb服务器无法从发布请求中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48742348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com