如何在Express js Route中正确获取Jquery数据服务器端参数

时间:2016-06-16 22:19:34

标签: javascript jquery node.js express datatables

我正在使用expressjs作为我的路由,在node.js app中实现服务器端数据表。我的数据表配置:

$('#sitesTable').DataTable( {
    serverSide: true,
    ajax: '/site/fragments/siteList/filter',
    order: [[ 0, 'asc' ]],
    pageLength: 10,
    columns: [
        { title: 'SID', data: 'ID' },
        { title: 'Store', data: 'Name'},
        (several other columns here)
    ]
});

在我的路线中(基于this question和我在研究时发现的其他资源)

var express = require('express');

var router = express.Router({
   strict: true
});

var url = require('url');

router.get('site/fragments/siteList/filter', function(req, res) {
   debug('Filtered Sites query');
   var queryString = url.parse(req.url, true);
   var myFoo = queryString.query;

   console.log(myFoo);
});

运行此请求时,以下内容将输出到控制台:

{ draw: '1',
    'columns[0][data]': 'ID',
    'columns[0][name]': '',
    'columns[0][searchable]': 'true',
    'columns[0][orderable]': 'true',
    'columns[0][search][value]': '',
    'columns[0][search][regex]': 'false',
    'columns[1][data]': 'Name',
    'columns[1][name]': '',
    'columns[1][searchable]': 'true',
    'columns[1][orderable]': 'true',
    'columns[1][search][value]': '',
    'columns[1][search][regex]': 'false',
    'order[0][column]': '0',
    'order[0][dir]': 'asc',
    start: '0',
    length: '10',
    'search[value]': '',
    'search[regex]': 'false'
}

请注意,未正确解析数组参数(列和搜索)。如何正确解析请求以获得可用格式的单独参数?

0 个答案:

没有答案