Foros del Web » Programando para Internet » Node.js »

Hola mundo con MongoDB!

Estas en el tema de Hola mundo con MongoDB! en el foro de Node.js en Foros del Web. Hola, mis amigos, voy al grano: Objetivo: hacer un hola mundo con MongoDB, que consiste en guardar un email y password en una BD llamada ...
  #1 (permalink)  
Antiguo 29/01/2017, 19:00
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 509
Antigüedad: 4 años
Puntos: 19
Pregunta Hola mundo con MongoDB!

Hola, mis amigos, voy al grano:

Objetivo: hacer un hola mundo con MongoDB, que consiste en guardar un email y password en una BD llamada mi_bd.

Problema: Tengo un formulario con dos input text para el email y usuario, y cuando hago submit el navegador devuelve "Los datos fueron guardados correctamente", pero la consola devuelve un error: los headers ya fueron enviados.

Lo que estoy haciendo:
Cuando creo un nuevo proyecto Node.js, éste viene por defecto con esta estructura:
mi-proyecto
bin
node_modules
public
routes (index.js, users.js)
views
app.js
npm-debug.log
package.json

En app.js añado esto:
Código Javascript:
Ver original
  1. var mongoose = require('mongoose');
  2. var Schema = mongoose.Schema;
  3. var mi_esquema = new Schema({
  4.   email: {type: String},
  5.   password: {type: String}
  6. });
  7. var User = mongoose.model("User",mi_esquema);
  8. mongoose.connect('mongodb://localhost/mi_bd', (err, res) => {
  9.   if (err) {
  10.     throw err;
  11.     console.log("ERROR! Imposible establecer conexión a la DB");
  12.   }
  13.   else {
  14.     console.log("Conexión OK a la DB");
  15.   }
  16. });

En routes/users.js añado esto:
Código Javascript:
Ver original
  1. var mongoose = require('mongoose');
  2. var User = mongoose.model("User");
  3.  
  4. router.post('/', function(req, res, next) {
  5.   var user = new User({ email: req.body.email, password: req.body.password });
  6.   user.save(function(){
  7.     res.send("Los datos fueron guardados en la BD");
  8.   });
  9. });

Sospecho que el error de que las cabeceras ya se enviaron, es causado por la línea var mongoose = require('mongoose'); que puse en routes/users.js. Pero si la quito, la consola me dice que mongoose no está definido, que es el mongoose de var User = mongoose.model("User"). Y si quito esta última línea, la consola me dice que User no está definido (que es el User declarado en la ruta).

¿Alguna idea de cómo solucionar esto?

NOTAS
  1. Ya instalé MongoDB y Mongoose.,
  2. Me he basado en este tutorial. En este tutorial el árbol de carpetas es distinto al mío, así que en el tutorial la ruta va en app.js, y no en users.js como en mi caso.


Saludos!
__________________
¿Muy rudo como para leer al Profesor Berkeley? Vamos a ver: Sobre los pelados de barrio



La zona horaria es GMT -6. Ahora son las 23:32.