Digamos, quería que un usuario ingresara un cierto valor en un HTML que se ejecuta en NodeJS para guardarlo en mi base de datos, ¿cómo haría eso?
Podría obtener el valor de HTML a través del DOM, claro. Digamos que example.html se estaba ejecutando a través de NodeJS así:
var fs = require('fs'); http.createServer(function (req, res) { fs.readFile('example.html', function(err, data) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); return res.end(); }); }).listen(8080);Podría obtener mi valor a través del DOM de example.html, así:
var valuetobegotten = document.getElementById('valuetobegotten').value;Pero eso solo sucede en el front-end HTML. Entiendo que necesita un controlador MongoDB para poder interactuar con MongoDB a través de NodeJS. Y necesito configurar algo como esto:
var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:8080"; MongoClient.connect(url, function(err, db) { if (err) throw err; console.log("Database created!"); db.close(); });Pero, cuando trato de obtener el valor que se va a generar a través del DOM anteriormente, al insertarlo en una colección de MongoDB, ¿cómo sabe MongoDB dónde buscar? ¿Se ve en la URL de los archivos JS que se ejecutan en el mismo servidor? Al igual que:
MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("mydb"); var valuetogotten = valuetobegotten; dbo.collection("values").insertOne(valuetobegotten, function(err, res) { if (err) throw err; console.log("1 document inserted"); db.close(); }); });¿Es así como se hace?
Debe enviar el valor del navegador de regreso a su servidor de nodo:
+---------+ <-1- +---------+ -3-> +----------+ | BROWSER | -2-> | SERVER | | DATABASE | +---------+ +---------+ +----------+Lo que implementó actualmente es 1 (servir el HTML) y 3 (almacenar algo en la base de datos), pero no 2 (enviar el valor del HTML en el navegador al servidor del nodo). Entonces, el valor que obtuvo en su HTML debe enviarse a un punto final (aún no existente) en su servidor de nodo que luego llama a MongoClient.