【发布时间】:2019-01-28 05:34:38
【问题描述】:
我正在尝试从 MongoDB 服务器获取表单数据并使用 nodeJs 将其显示到数据表中。我使用 npm Paginate v-2 插件成功完成了服务器端分页。但现在搜索不起作用。下面是我的 NodeJs 和 javascript 文件代码。请帮我搜索。
NodeJs 代码
app.get('/gettable',(req,res)=>{
console.log(req.query);
user.paginate({},{
page:Math.ceil(req.query.start / req.query.length) + 1,
limit:parseInt(req.query.length)
},function(err,result){
var mytable = {
draw:req.query.draw,
recordsTotal:0,
recordsFiltered:0,
data:[],
}
if(err) {
console.log(err);
res.json(mytable);
} else {
if(result.totalDocs > 0) {
mytable.recordsTotal = result.totalDocs;
mytable.recordsFiltered = result.totalDocs;
for(var key in result.docs) {
mytable.data.push([
result.docs[key]['name'],
result.docs[key]['lastname'],
result.docs[key]['email'],
result.docs[key]['pass'],
result.docs[key]['birthdate'],
result.docs[key]['zipcode'],
result.docs[key]['phonenumber'],
]);
}
}
res.json(mytable);
}
});
DisplayTable.Js 代码
$(document).ready(function(){
$('#example').DataTable({
"processing": true,
"serverSide": true,
"ajax": "http://localhost:8080/gettable"
});
})
正如我所说,我成功地从服务器获取数据并通过服务器端分页显示到数据表中,但搜索不起作用,但在搜索 div 时,无论我搜索什么,我都会在搜索数组中获得该值,如下所示
search: { value: 'svs', regex: 'false' },
_: '1548653540009' }
但它没有在数据表中实现过滤列。
【问题讨论】:
-
您的意思是您正在通过查询 (
req.query) 搜索您的数据库并且它不起作用(即您没有返回搜索结果)或者您的数据库以正确的方式响应数据并将其加载到 HTML 中,但您无法搜索此数据?是哪一个? -
@EmmanuelNK 我正在从服务器获取数据并将其放入数据表中,但 Datatables 默认搜索栏不起作用。我正在使用 Bootstrap 4 使用默认数据表
-
@Arjun,仅启用服务器端,全局搜索将无法开箱即用。您必须在节点 js 中添加该代码以进行搜索,然后将响应发送回数据表
-
好的@PrashantPokhriyal 我明白了。你能帮我看看如何在nodeJS中做到这一点。
-
@Arjun,真的很抱歉,我不是 nodejs 人。无论如何,我会尽力为您提供解决方案
标签: node.js mongoose datatables datatables-1.10