• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

257
Views
Express API: la actualización de la API Express NodeJS en el navegador hace que la matriz vacíe los resultados

Creé una API básica para mi proyecto usando node y express. Quería agregar información de paginación a los datos, como límite, tamaño de datos, página, etc.

Me las arreglé para hacer esto, pero tengo un error que no puedo arreglar. Cuando cargo la API en el navegador y presiono actualizar, me mostrará el siguiente conjunto de objetos (ya que el límite es 10), si presiono actualizar nuevamente, los resultados están vacíos.

 {"collectionSize":29,"numOfPages":3,"results":[]}

¿Es este comportamiento normal?

Aplicación.js

 import express from 'express' import cors from 'cors' import indexRouter from './routes/indexRouter.js' const app = express() const port = process.env.PORT || 4041 app.use(express.urlencoded({ extended: false })) app.use(express.json()) app.use(cors()) // <---- use cors middleware app.use('/', indexRouter) app.listen(port, () => { console.log(`server is running on port: ${port}`) })

Enrutador.js

 import express from 'express'; import projectData from "../mocks/data.js"; const router = express.Router(); const projects = projectData; router.get("/api/projects", paginate(projects), (req, res) => { const { paginatedResult } = res; res.json( paginatedResult ); }); const config = { startingPage: 1, limitDefault: 10, modelSize: projects.length, } function paginate(model) { return async (req, res, next) => { const page = parseInt(req.query.page) || config.startingPage; const limit = parseInt(req.query.limit) || config.limitDefault; const startIndex = (page - 1) * limit; const endIndex = page * limit; const numOfPages = Math.round(config.modelSize / limit); const result = {}; if (endIndex < model.length) { result.next = { page: page + 1, limit: limit, }; } if (startIndex > 0) { result.previous = { page: page - 1, limit: limit, }; } try { result['collectionSize'] = config.modelSize; result['numOfPages'] = numOfPages; result.results = model.splice(startIndex, endIndex); res.paginatedResult = result; return next(); } catch (e) { res.status(500).json({ message: e.message }); } }; }
about 3 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error