Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

261
Visualizações
El almacenamiento en búfer de la operación `posts.find ()` se agotó después de 10000 ms

Funciona perfectamente cuando lo probé localmente. Pero Heroku da este error después de la implementación del servidor. ¿Alguien puede ayudar?

 { "message": "Operation `posts.find()` buffering timed out after 10000ms" }

índice.js

 const express = require("express"); const cors = require("cors"); const mongoose = require("mongoose"); const bodyParser = require("body-parser"); require("dotenv").config(); const app = express(); const postRouter = require("./routes/post"); const port = process.env.PORT || 5000; app.use(cors()); app.use(bodyParser.json({ limit: "30mb", extended: true })); app.use(bodyParser.urlencoded({ limit: "30mb", extended: true })); app.get("/", (req, res) => { res.send("it works"); }); //mongoose connection const URL = process.env.CONNECTDB_URL; mongoose.connect(URL, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true, }); const connection = mongoose.connection; connection.once("open", () => { console.log("MongoDB database connection established successfully"); }); //router app.use("/posts", postRouter); //listening app.listen(port, () => { console.log(`Server is running on port: ${port}`); });

El archivo del controlador está aquí. Estoy tratando de obtener todas las publicaciones. Localmente no tengo ningún error.

 const getPosts = async (req, res) => { try { const posts = await Post.find({}); res.status(200).json(posts); } catch (error) { res.status(404).json({ message: error.message, }); } };
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Tuve un problema similar, pero me di cuenta de que no había configurado las Config Vars para la variable CONNECTDB_URL correctamente en Heroku. Ese podría ser tu problema aquí.

over 4 years ago · Santiago Trujillo Relatório

0

Después de 1 mes de investigación y de luchar con el código, finalmente obtuve una solución. Tengo exactamente el mismo problema que tú. El problema en mi caso no estaba en el código, sino en que mongoDB se negaba a sí mismo. Si usa MongoDB atlas para administrar su base de datos, entonces necesita agregar una IP confiable a las opciones de seguridad de su base de datos. En ese caso, esa debería ser la IP del Servidor Heroku.

Sin embargo, hay un problema: Heroku no proporciona ninguna dirección IP para su servidor ( https://help.heroku.com/4WADH6LX/can-you-provide-me-with-the-ip-address-for-my- aplicación ), y aunque puede usar un paquete de terceros como Zerigo DNS , una opción de uso gratuito que le da a su servidor Heroku una dirección IP. Aquí hay un enlace sobre cómo configurarlo: https://devcenter.heroku.com/articles/zerigo_dns

Sin embargo, usé una forma diferente, menos segura, pero más fácil . Al configurar las IP incluidas en la lista blanca (las que aceptará MongoDB) en MongoDB Atlas, puede seleccionar una opción para confiar en todos, es decir, cada dirección IP, que incluirá su servidor Heroku.

Aquí hay algunas fotos útiles:

Primero, haga clic en Acceso a la red en la pestaña de seguridad en el panel lateral izquierdo. ingrese la descripción de la imagen aquí

Luego, esta ventana debería abrirse y hacer clic en Agregar dirección IP. Su propia dirección IP ya se agregó automáticamente, es por eso que su servidor localhost funcionó, pero el servidor Heroku no. MongoDB permitió que el servidor de su computadora solicitara datos, pero no el de Heroku.

ingrese la descripción de la imagen aquí

En la ventana emergente, seleccione PERMITIR TODAS LAS IP o algo así. Entonces debería aparecer una nueva IP debajo de la primera. Tendrá una dirección de 0.0.0.0/0 que significa: "cualquiera"

ingrese la descripción de la imagen aquí

Por último, es posible que desee agregar variables de entorno de Heroku mediante la CLI de Heroku. No estoy seguro, pero parece que un archivo .env podría no ser suficiente, así que agregue su URL mongoDB, secretos y puertos en Heroku también.

En la descripción general de la aplicación, haga clic en configuración

ingrese la descripción de la imagen aquí

Luego, al revelar las variables de configuración:

ingrese la descripción de la imagen aquí

Y simplemente agregue las variables de su archivo .env:

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda