所以我正在尝试使用datatables插件实现分页表,这是我第一次使用此插件。按照插件文档中的介绍,我遵循了插件文档,并尝试通过使用Ajax从服务器获取值。

发出get请求后,我似乎会收到以下错误,但我不确定为什么?

错误:未捕获的类型错误:无法读取未定义的的属性'length'

在客户端,我有以下代码

viewReports = {
    init: function(){
        $('#paginatedData').DataTable({
            "processing": true,
            "serverSide": true,
            "ajax": '/viewreports'
        });

    }
};

$(document).ready(viewReports.init);

在我的服务器端,我有以下内容
router.get('/viewreports', function(res, req){

    async.parallel({
        viewReports: function(callback){
            restCall('/rest/bugbounty/latest/message/searchReport', 'POST', parameters, function(data){
                callback(null, data);
            });
        }
    }, function(err, result){
        if(!err){
            res.send(result.viewReports);
            res.render('viewreports');
        }
    });
});

返回的JSON:



非常高兴知道是否有人在node.js服务器端处理数据表

最佳答案

您需要定义 dataSrc columns.data -以下应该起作用:

var table = $('#example').DataTable({
    processing: true,
    serverSide: true,
    ajax: {
        url: "/viewreports",
        dataSrc: "reportList"
    },
    columns: [
        { data : "reportID" },
        { data : "eBayUserID" },
        { data : "reportStatus" },
        { data : "summary" },
        { data : "lastUpdatedDate" },
        { data : "createdDate" },
        { data : "paypalLoginID" }
   ]
});

在空桌上:

<table id="example"></table>
  • dataSrc以指定保存行项目的数组的名称(“无法读取未定义的属性'length'的原因”)
  • columns.data将项目属性映射到
  • 08-19 09:04