如何在Node.js中获得post (jquery)数组数据(使用express)
How to get POSTed (jquery) array data in Node.js (using express)
我试图张贴数组到我的服务器。但我很难把它做好。
我试图张贴的数组,是一个动态结构的对象数组,因此我不知道它的长度。
更精确地说,我的数组的形式是。
var names =[{id:1, name:"nick"},{id:2,name:"bob"},{id:3,name:"john"}.....{id:n, name:"whatever"}]
我正在使用jquery:
$.post("save_names", {
'names[]': names
}, function(results) {
alert(results);
});
我的节点代码如下:(我使用stormpath-express)
app.post('/save_names', config.access_group, function(req, res) {
console.log("body ", req.body);
});
通过这种方式,我从console.log
中得到以下内容body { 'names[]': [ '[object Object]', '[object Object]', '[object Object]' ] }
当我尝试打印数组:console.log("body ", req.body.names);
得到body undefined
发送的数据不正确。您可以在开发工具中检查请求。您将看到如下内容:
Form Data
names[]:[object Object]
names[]:[object Object]
names[]:[object Object]
names[]:[object Object]
尝试自己将数据转换为JSON:
$.post("save_names", {
'names[]': JSON.stringify(names)
}, function(results) {
alert(results);
});
不要忘记正确访问你的数组:console.log("body ", req.body['names[]']);
.
是的,您的req.body
包含键names[]
,而不是names
。所以你可以从req.body['names[]']
中抓取或重写代码,使名称为object:
$.post("save_names", {
names: names
}, function(results) {
alert(results);
});
和快递代码:
app.post('/alter_offer_sort', config.access_group, function(req, res) {
console.log("body ", req.body.names);
});
注:可能您从GET查询中获取[]
名称。POST不是这样的
:
我也没有注意到,只有object的字符串,所以初始化bodyParser。
首先安装body-parser:
npm install --save body-parser
然后将代码修改为:
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
相关文章:
- 按键,值到数组:jQuery
- 数组数组jquery,json到数组
- 从数组jquery中基于子字符串的移除项
- 从数组jQuery中删除一组项
- 如何在数组jQuery中查找字符串的一部分
- 当输入字段名称在数组jquery中时序列化表单
- 打乱图像数组jquery
- 在数组 jQuery 中查找值
- 循环遍历多维数组 jQuery
- 在数组 jQuery 中查找特定的字符串模式
- 随机选择带有删除项的数组(jQuery)
- 在数组中附加值数组 - jquery
- 从数组 Jquery 中获取下拉列表的选定索引
- 删除相同值数组 Jquery
- 如何从数组 jquery 中删除特定值
- 将 2D 数组 jQuery Post 发送到 Java Servlet
- 获取数组jQuery中元素的索引
- 正在从会话数组Jquery Ajax中删除项
- 在GET请求中绑定复杂对象的数组-jquery.praram()传统标志
- 获取空对象数组jquery post