• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

156
Vistas
cómo solucionar MongooseError: el almacenamiento en búfer de la operación `iphones.insertMany()` se agotó después de 10000 ms

Estoy eliminando datos de amazon.com y guardándolos en mongodb usando mongoose. Cada vez que llamo al método InsertMany, aparece el error en el título anterior, utilicé un .catch y el mensaje de error es en realidad el documento formateado como mongodDB con el ObjectID generado automáticamente y todo. Busqué todos los enlaces en línea y en stackOverFlow y no puedo encontrar una respuesta útil, así que NO CIERRES ESTO COMO DUPLICADO porque ninguna respuesta parece ayudar.

Me aseguré de estar usando el usuario correcto y de incluir en la lista blanca todas las direcciones IP (0.0.0.0/0). el código está debajo

 import cheerio from "cheerio"; import express from "express"; import axios from "axios"; import mongoose from "mongoose"; import iphone from "../../Database/models/iphone.schema.js"; const PORT = 3000; const app = express(); const connectToMongod = async () => { setTimeout(function () { mongoose.set("bufferCommands", false); mongoose .connect( "mongodb+srv://amro:amro1234@cluster0.z9mix.mongodb.net/myFirstDatabase?retryWrites=true&w=majority", { useNewUrlParser: true, socketTimeoutMS: 0, } ) .then(console.log("connected successfully")); }, 0); console.log("connected to MongoDb"); }; const iLoveFakhry = async () => { const data = []; for (var i = 1; i <= 4; i++) { const res = await axios( `https://www.amazon.com/s?k=iphone&page=${i}&qid=1641303333&sprefix=iphone%2Caps%2C262&ref=sr_pg_${i}` ); const html = res.data; const $ = cheerio.load(html); $(".s-asin").each((i, el) => { if (i == 16) { return false; } else { const title = $(el) .find(".s-title-instructions-style") .end() .find(".a-size-medium.a-color-base.a-text-normal") .html(); const price = $(el) .find(".s-price-instructions-style") .end() .find(".a-offscreen") .html(); const link = "https://amazon.com" + $(el) .find(".s-title-instructions-style") .end() .find(".a-link-normal") .attr("href"); data.push({ title, price, link, }); } }); } return data; }; app.get("/scrape", async (req, res) => { await connectToMongod(); const data = await iLoveFakhry(); await iphone.insertMany(data).catch((err) => { console.error(err); }); res.send(data); }); app.listen(PORT, () => console.log(`Server Started on PORT ${PORT}`));
almost 3 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda