Javascript jQuery DataTables with Node.js
所以我尝试用datatables插件实现分页表,这是我第一次使用这个插件。我按照插件文档的说明,尝试通过使用Ajax从服务器获取值,如插件文档中所示 一旦我发出get请求,我似乎会出现以下错误,我不确定原因是什么 错误:未捕获类型错误:无法读取未定义的属性“长度” 在客户端,我有以下代码Javascript jQuery DataTables with Node.js,javascript,jquery,node.js,datatables,jquery-datatables,Javascript,Jquery,Node.js,Datatables,Jquery Datatables,所以我尝试用datatables插件实现分页表,这是我第一次使用这个插件。我按照插件文档的说明,尝试通过使用Ajax从服务器获取值,如插件文档中所示 一旦我发出get请求,我似乎会出现以下错误,我不确定原因是什么 错误:未捕获类型错误:无法读取未定义的属性“长度” 在客户端,我有以下代码 viewReports = { init: function(){ $('#paginatedData').DataTable({ "processing": t
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:
{reportList:[{reportID:'EIBBP-448',eBayUserID:'',reportStatus:'New',summary:'BugBounty Report created by Raj',LastUpdateDate:'2015-06-15 01:05',createdDate:'2015-06-15 01:05',paypalLoginID:'raaj@paypal.com' } ],searchStatus:'Success',eBayUserID:'',错误代码:'0',行数:'6',页码:'1',分页值:'1',paypalLoginID:'raaj@paypal.com“}
如果知道是否有人使用过node.js服务器端数据表处理,那就太好了。您需要定义和-以下内容应该可以使用:
var table=$('#示例').DataTable({
处理:对,
服务器端:是的,
阿贾克斯:{
url:“/viewreports”,
dataSrc:“报告列表”
},
列:[
{数据:“报告ID”},
{数据:“eBayUserID”},
{数据:“报告状态”},
{数据:“摘要”},
{数据:“LastUpdateDate”},
{data:“createdDate”},
{数据:“paypalLoginID”}
]
});
在一张空桌子上:
指定包含行项目的数组的名称(导致“无法读取未定义的属性‘长度’”)dataSrc
将项目属性映射到列columns.data
- 您不必为服务器端处理而烦恼。
我使用了一种简单的方法来欺骗
dataTables
初始化
首先,您需要通过最喜欢的方式获取要在表中显示的数据,在确认数据显示良好后,现在前往初始化dataTables
的位置,并使其在初始化之前延迟
setTimeout(() => {
$('#yourtable').dataTable({
// datatables customization options
});
}, 100)
例如,在我的例子中,我给它一个100毫秒的延迟,它就像一个符咒一样工作。在服务器端处理模式下,服务器端代码应该以JSON格式返回数据,如前所述。请发布服务器返回的JSON文件。因此,我没有保存JSON数据的特定文件,但在呈现路由“/viewreports”时,我可以在控制台{reportList:[{reportID:'EIBBP-448',eBayUserID:'',reportStatus:'New',summary:'BugBounty Report created by Raj',LastUpdateDate:'2015-06-15 01:05',createdDate:'2015-06-15 01:05',paypalLoginID:'raaj@paypal.com' } ],searchStatus:'Success',eBayUserID:'',错误代码:'0',行数:'6',页码:'1',分页值:'1',paypalLoginID:'raaj@paypal.com' }我是否需要对上述json值进行字符串化?对于服务器端处理模式,您的响应不正确,请阅读以了解更多详细信息和数据格式。是的,您需要以json格式返回字符串。