Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

432
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!