我有以下数组的ID:
var arr = [1, 23, 6];
我需要将此数组发送到服务器,解析它,并从mongoose db中删除id。对于我的后端,我正在使用nodejs express。所以我需要你的建议我应该如何使用jQuery发送数组,我应该如何在服务器上解析它。
答案 0 :(得分:7)
基本上是对@ udidu的好答案的评论,但我想要降价格式,所以我会将其作为答案发布。以下是一些小改进建议:
除了javascript方面的网址“/ deleteIds”之外的其他所有内容,所以无论如何提供它都会有效。
您可以将数组作为JSON字符串发送,而不使用对象包装器
$.ajax({
url: '/deleteIds',
type: 'DELETE',
data: JSON.stringify([1, 2, 3]),
contentType: "application/json",
processData: false,
success: function(data){
console.log(data);
}
});
在服务器中,该阵列仅可用req.body
根据REST约定,这应该使用HTTP DELETE
方法(我已经更改了jquery。您还需要更改快速代码以执行app.del
而不是{ {1}})。
答案 1 :(得分:4)
好的,请遵循这些说明并且你很好:
首先,让我们创建我们的节点服务器,我使用Express模块来定义HTTP服务器:
var fs = require('fs'),
express = require('express'),
app = express();
app.listen(8080);
app.use(express.bodyParser());
app.get('/', function(req, res){
var html = fs.readFileSync('index.html');
res.header("Content-Type", "text/html");
res.send(html);
});
app.post('/deleteIds', function(req, res){
console.log(req.body.arr[0]);
res.json({ success: true });
});
服务器'/'请求返回一个HTML页面,它将创建一个jQuery Ajax请求,这是HTML文件内容:
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
url: 'http://localhost:8080/deleteIds',
type: 'POST',
data: {
arr: [ 1, 2, 3]
},
success: function(data){
console.log(data);
}
});
</script>
</head>
<body>
</body>
</html>
正如您所看到的,html文件中的Ajax请求作为POST请求发送,并以数组作为数据,服务器中的/deleteIds
表达路径POST函数侦听并使用{{ 1}},请注意我正在使用req.body.arr
,如果没有此行,我们将无法从POST请求中获取正文内容。
就是这样..我希望这有助于使用express来理解Node + Ajax请求,从这一点开始,您可以在app.use(express.bodyParser());
上运行并使用数据执行您想要的操作。