我正在使用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'
}
请注意,未正确解析数组参数(列和搜索)。如何正确解析请求以获得可用格式的单独参数?