如何正确发送ID数组

我有如下的ID数组:

var arr = [1, 23, 6]; 

我需要将这个数组发送到服务器,parsing它,并从mongoose数据库中删除id。 对于我的后端,我正在使用nodejs express。 所以我需要你的build议我应该如何通过使用jQuery发送数组,我应该如何parsing它在服务器上。

好的,按照这个指示,你很好:

首先,让我们创build我们的节点服务器,我使用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页面,它将创build一个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请求,服务器中的/deleteIdspathPOST函数侦听该数据,并使用req.body.arr获取数组,请注意我正在使用app.use(express.bodyParser()); ,没有这一行,我们将无法从POST请求中获取正文内容。

这是它..我希望这是帮助理解使用快递节点+ Ajax请求,从这一点上,你可以在arr上运行,并做你想要的数据。

基本上@ udidu的回答很好,但是我想要markdown格式,所以我会把它作为答案。 这里有一些小的改进build议:

  • 省略一切,但从JavaScript的pathurl“/ deleteIds”的一方,所以它会工作,不pipe它是如何服务的。

  • 您可以将数组作为JSONstring发送,而不使用对象封装

     $.ajax({ url: '/deleteIds', type: 'DELETE', data: JSON.stringify([1, 2, 3]), contentType: "application/json", processData: false, success: function(data){ console.log(data); } }); 
  • 在服务器中,数组只能以req.bodyforms提供

  • 按照REST约定,这应该使用HTTP DELETE方法(我已经改变了jquery,你也需要改变expression代码来做app.del而不是app.post )。