Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

431
Vistas
MongoDB obtiene datos para mostrar en HTML

Estoy tratando de mostrar datos de mongodb en mi página html. Ya logré insertar datos en db pero por alguna razón mi función "obtener" no funciona.

Estoy usando node.js con express framework y Angular para front-end y enrutamiento.

Esta es mi función "obtener" para recuperar datos de MongoDB:

 var mongo = require('mongodb'); var assert = require('assert'); var url = 'mongodb://localhost:27017/loodgieters'; router.get('/get-data', function(req, res, next) { var resultArray = []; mongo.connect(url, function(err, db){ assert.equal(null, err); var cursor = db.collection('user-data').find(); cursor.forEach(function(doc, err){ assert.equal(null, err); resultArray.push(doc); }, function(){ db.close(); res.render('index', {items: resultArray}); }); }); });

Y mi "post" que funciona

 router.post('/insert', function(req, res, next) { var item = { name: req.body.name, adress: req.body.adress, postal: req.body.postal, city: req.body.city, email: req.body.email, phone: req.body.phone, quotation: req.body.quotation, message: req.body.message }; mongo.connect(url, function(err, db) { assert.equal(null, err); db.collection('user-data').insertOne(item, function(err, result){ assert.equal(null, err); console.log('Item inserted'); db.close(); }); }); res.redirect('/contact'); });
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No estoy seguro de si esta es la forma correcta de abrir y cerrar la conexión mongo cada vez que intenta consultar. si desea optar por otro enfoque, use mangosta y siga algo como esto https://pastebin.com/g7aatzzj

about 4 years ago · Santiago Trujillo Denunciar

0

Creo que tiene un error en las devoluciones de llamada de la función .find().forEach . El manejo de errores parece estar en endCallback, no en iteratorCallback.

Según el documento oficial , la forma correcta debería ser:

 var mongo = require('mongodb'); var assert = require('assert'); var url = 'mongodb://localhost:27017/loodgieters'; router.get('/get-data', function(req, res, next) { var resultArray = []; mongo.connect(url, function(err, db){ assert.equal(null, err); var cursor = db.collection('user-data').find({}); cursor.forEach(function(doc){ assert.notEqual(null, doc); resultArray.push(doc); }, function(err, doc){ assert.equal(null, err); db.close(); res.render('index', {items: resultArray}); }); }); });

Esto también se puede encontrar en sus pruebas unitarias.

 var cursor = collection.find({}) .map(function(x) { return {a:1}; }) .batchSize(5) .limit(10); cursor.forEach(function(doc) { test.equal(1, doc.a); }, function(err, doc) { test.equal(null, err); db.close(); test.done(); });

Creo que debe tener un error que no se pasa a la primera devolución de llamada y no se maneja en la segunda. Entonces no ves el error.

about 4 years ago · Santiago Trujillo Denunciar

0

Intente insertar un objeto vacío en la función find() de la siguiente manera:

var cursor = db.collection('user-data').find({});

about 4 years ago · Santiago Trujillo Denunciar
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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda