gpt4 book ai didi

javascript - express body-parser 中间件将数据放入属性名称

转载 作者:行者123 更新时间:2023-11-30 05:31:31 24 4
gpt4 key购买 nike

我是 nodeJS Express 框架的新手。我正在使用我使用以下内容发送的 POST 请求:

router.post('/', function(req, res) {
var data = Object.getOwnPropertyNames(req.body)[0];
});

我已经通过以下方式从客户端发送了这些数据:

$.ajax({
url: "write_to_region",
type: "POST",
data: JSON.stringify(grid)
});

其中“网格”是一个二维值数组。我的 express 正文解析器配置如下:

app.use(bodyParser.urlencoded({limit: '50mb', extended: false }));

执行此操作的更好或更惯用的方法是什么?请注意,该数组有点大 (10kb),并且只包含整数。理想情况下,我会尽量减少请求中发送的数据量。谢谢!!

最佳答案

问题是您没有设置适当的 Content-Type。 Jquery 用于POST数据的默认Content-Typeapplication/x-www-form-urlencoded。因此主体解析器开始读取请求数据,寻找 = 以了解“key”何时结束以及“value”何时开始。它永远找不到 =,所以它一直附加到键名上。

要解决此问题,您需要在 $ajax() 配置中添加以下选项:

contentType: "application/json; charset=utf-8",
dataType: "json",

并添加 bodyParser.json() 中间件:

app.use(bodyParser.json());

关于javascript - express body-parser 中间件将数据放入属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26663297/

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