2017-04-07 88 views
0

我想模仿我的Angular网站的右边栏this example的功能。如何使用Angular/Express/MongoDB中的过滤器创建搜索?

我不知道这是叫什么,甚至如何在前端或后端去做它!

我的假设:

  1. 与值从DB来直的,并且仅示出了期望的参数创建一个形式(即db.collection.find(查询,{参数:1})其将被称为每次用户修改表单时都会进行更新,另外,结果也会在选择时更新(我有超过100MB的文档,返回所有这些文档都会很麻烦,我怎么能限制返回的文档数量,比如20或者50(用户输入)并分页它(1000个文档返回/ 50每页= 20 '页')

  2. 每个输入第at被选中时,会返回{'field':value} - 但我不确定如何控制一个空值(即如果用户不选择燃料类型或传输范围会怎样?)

如何正确设计此功能?

回答

1

1)在您的查询,使用限制声明:

var options = { "limit": 20 } 
    collection.find({}, options).toArray(...); 

2),您可以验证用户空输入(如with express-validator):

req.checkBody('postparam', 'Invalid postparam').notEmpty() 
req.getValidationResult().then(function(result) { 
    if (!result.isEmpty()) { 
     res.status(400).send('There have been validation errors: ' + util.inspect(result.array())); 
     return; 
} 

,并根据结果选择默认值/ pass error/render请求页面为用户

+0

如何使用express-validator删除空字段({field1:“”}),并将非空字段传递给查询? – Moshe

+0

检查express-validator上的自定义验证器 –

相关问题