Estoy tratando de imitar la funcionalidad de la barra lateral derecha de este ejemplo para mi sitio Angular.
¡No sé cómo se llama esto, o incluso cómo hacerlo en la parte delantera o trasera!
Mi suposición:
Cree un formulario con valores provenientes directamente de la base de datos y solo muestre el parámetro deseado (es decir, db.collection.find(consulta, {parámetro: 1}) que se llamará para actualizar cada vez que un usuario modifique el formulario. Además, los resultados también se actualizaría en la selección (tengo más de 100 MB de documentos, devolverlos TODOS sería problemático, ¿cómo puedo limitar la cantidad de documentos devueltos a, digamos, 20 o 50 (entrada del usuario?) y paginarlos (1000 documentos devueltos / 50 por página = 20 'páginas')
Cada entrada que se selecciona, se devolverá un {'campo': valor}, pero no estoy seguro de cómo controlar un valor vacío (es decir, ¿qué pasa si un usuario no elige un tipo de combustible o un rango de transmisión?)
¿Cómo hago para diseñar una característica de este tipo correctamente?
1) En su consulta, use la declaración de límite:
var options = { "limit": 20 } collection.find({}, options).toArray(...);2) puede validar la entrada vacía del usuario (por ejemplo, con 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; }y según el resultado, elija el valor predeterminado/pasar error/presentar página de solicitud para el usuario