Saltar al contenido

Paginación en nodejs con mysql

Si te encuentras con algo que te causa duda nos puedes dejar un comentario y haremos todo lo posible de ayudarte lo más rápido posible.

Solución:

Podría intentar algo así (suponiendo que use Express 4.x).

Use parámetros GET (aquí página es el número de resultados de página que desea y npp es el número de resultados por página).

En este ejemplo, los resultados de la consulta se establecen en el results campo de la carga útil de respuesta, mientras que los metadatos de paginación se establecen en el pagination campo.

En cuanto a la posibilidad de consultar en función del resultado de búsqueda actual, tendría que ampliar un poco, porque su pregunta no está clara.

var express = require('express');
var mysql   = require('mysql');
var Promise = require('bluebird');
var bodyParser = require('body-parser');
var app = express();

var connection = mysql.createConnection(
  host     : 'localhost',
  user     : 'myuser',
  password : 'mypassword',
  database : 'wordpress_test'
);
var queryAsync = Promise.promisify(connection.query.bind(connection));
connection.connect();

// do something when app is closing
// see http://stackoverflow.com/questions/14031763/doing-a-cleanup-action-just-before-node-js-exits
process.stdin.resume()
process.on('exit', exitHandler.bind(null,  shutdownDb: true  ));

app.use(bodyParser.urlencoded( extended: true ));

app.get('/', function (req, res) );

app.listen(3000, function () 
  console.log('Example app listening on port 3000!');
);

function exitHandler(options, err) 
  if (options.shutdownDb) 
    console.log('shutdown mysql connection');
    connection.end();
  
  if (err) console.log(err.stack);
  if (options.exit) process.exit();

Aquí está el package.json archivo para este ejemplo:


  "name": "stackoverflow-pagination",
  "dependencies": 
    "bluebird": "^3.3.3",
    "body-parser": "^1.15.0",
    "express": "^4.13.4",
    "mysql": "^2.10.2"
  

Estaba buscando una solución rápida. tal vez sería útil para alguien.

SELECT id  FROM complexCoding LIMIT ? OFFSET ?
",req.query.perpage,((req.query.page-1) * req.query.perpage)

No olvides paginar de acuerdo a la total count of id dividido por página

Tomé la solución de @Benito y traté de dejarlo más claro

var numPerPage = 20;
var skip = (page-1) * numPerPage; 
var limit = skip + ',' + numPerPage; // Here we compute the LIMIT parameter for MySQL query
sql.query('SELECT count(*) as numRows FROM users',function (err, rows, fields) 
    if(err) 
        console.log("error: ", err);
        result(err, null);
    else
        var numRows = rows[0].numRows;
        var numPages = Math.ceil(numRows / numPerPage);
        sql.query('SELECT * FROM users LIMIT ' + limit,function (err, rows, fields) 
            if(err) 
                console.log("error: ", err);
                result(err, null);
            else
                console.log(rows)
                result(null, rows,numPages);
            
        );            
    
);

Aquí puedes ver las reseñas y valoraciones de los usuarios

Te invitamos a animar nuestra tarea dejando un comentario y dejando una valoración te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *