Parece que no puedo encontrar un ejemplo claro y limpio de cómo publicar/pasar una variable de javascript a Node.js. Quiero guardar lo que el usuario escribe en el cuadro de texto y luego pasar esa cadena en el nodo js y luego hacer lo que sea.
Cliente
<!DOCTYPE html> <html> <body> <h2>HTML Forms</h2> <form > <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="John"><br> </form> <button onclick="hello()">Click me</button> </body> <script> function hello () { var passed_variable = document.getElementById("fname"); // THIS VARIABLE NEEDS TO GO TO NODE.JS } </script> </html>Nodo.js
const express = require("express"); const app = express(); var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "dbname" }); con.connect(function(err) { if (err) throw err; console.log("Connected!"); var sql = "INSERT INTO files(email) VALUES (PASSED VARIABLE)"; con.query(sql, function (err, result) { if (err) throw err; console.log("1 record inserted"); }); }); app.listen(3000, () => { console.log("Application started and Listening on port 3000"); }); // serve your css as static app.use(express.static(__dirname)); app.get("/", (req, res) => { res.sendFile(__dirname + "/index.html"); });Quiero tomar esta variable y guardarla en mi localhost mysql db.
¿Puedes usar ? , como se muestra en los documentos
var sql = "INSERT INTO files(email) VALUES (?)"; con.query(sql, [someVar], function (err, result) { if (err) throw err; console.log("1 record inserted"); });En su aplicación de nodo, agregue una ruta POST: app.post('/sendData', (req, res)) => { console.log(req.body.yourFieldName) } . esto imprimirá cualquier dato en el campo: yourFieldName enviado a la ruta: http://localhost:3000/sendData .
en su aplicación del lado del cliente, puede usar algo como Axios, fetch o XHR simple para hacer una solicitud POST para enviar la passed_variable al punto final anterior.
Puede usar axios con cdn https://cdnjs.com/libraries/axios o
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>después de esto puedes llamar axios.post()
const data = { passed_variable } axios.post('https://example.com', data)Puede encontrar la documentación aquí -> https://axios-http.com/docs/intro