Stack Overflow em Português Asked by Marcos Colares on November 19, 2021
Olá colegas programadores!
Estou enfrentando um problema a dias e gostaria da ajuda de vocês para solucionar.
Estou criando um projeto em NodeJS e MongoDB. Ele consulta o banco de dados de acordo com o que o usuário digita e trás os resultados em uma lista. Por enquanto uso o NodeJS puro e bootstrap.
O meu próximo passo é criar uma paginação simples, pois a lista de itens que sai nos resultados é enorme.
Mas como sou muito noob ainda no assunto, estou em busca da ajuda de vocês.
Segue abaixo o meu index.js
const express = require('express');
const router = express.Router();
const morgan = require("morgan");
const bodyParser = require('body-parser');
const path = require("path");
const mongoose = require('mongoose');
function simplify(text) {
const separators = /[s,.;:()-'+]/g;
const diacritics = /[u0300-u036f]/g;
//capitalização e normalização
text = text.toUpperCase().normalize("NFD").replace(diacritics, "");
//separando e removendo repetidos
const arr = text.split(separators)
.filter((item, pos, self) => self.indexOf(item) == pos);
console.log(arr);
//removendo nulls, undefineds e strings vazias
return arr.filter(item => (item));
}
router.get('/search', function (req, res) {
res.render('search', {
title: 'Pesquisa'
});
});
router.get('/about', function (req, res) {
res.render('about', {
title: 'Sobre'
});
});
router.get('/', function (req, res, next) {
if (!req.query.q)
return res.render('index',
{
title: 'Site',
rb: [], query: ''
});
else {
const query = simplify(req.query.q);
const mongoClient = require("mongodb").MongoClient;
mongoClient.connect("mongodb://localhost:27017", {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(conn => conn.db("search-db"))
.then(
db => db.collection("tags")
.find({ tags: { $all: query } }, { title: { $all: query } })
.skip(10)
.limit(10)
)
.then(cursor => cursor.toArray())
.then(rb => {
return res.render('search',
{
title: 'Pesquisa',
rb, query: req.query.q
});
})
}
});
module.exports = router;
A solução para esse problema é passar mais um query param para a sua rota, indicando a quantidade de itens que deverão ser "pulados". O que está acontecendo hoje é que você sempre está "pulando" 10 documentos e retornando os próximos 10.
Answered by César Felipe on November 19, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP