【问题标题】:How to post a a variable to node.js from Javascript--> MYSQL如何从 Javascript--> MYSQL 将变量发布到 node.js
【发布时间】:2021-11-05 16:23:15
【问题描述】:

我似乎找不到一个清晰的示例来说明如何将变量从 javascript 发布/传递到 Node.js。我想保存用户在文本框中键入的内容,然后在节点 js 中传递该字符串,然后执行任何操作。

客户

<!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>

Node.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");
});

我想把这个变量保存到我的本地 mysql 数据库中。

【问题讨论】:

    标签: javascript mysql node.js


    【解决方案1】:

    可以使用?,如the docs所示

    var sql = "INSERT INTO files(email) VALUES (?)";
      con.query(sql, [someVar], function (err, result) {
        if (err) throw err;
        console.log("1 record inserted");
    });
    

    【讨论】:

    • 但是如何从 HTMLJavascript 发送 var。这是服务器端。
    • @MysteryMan 你必须从前端发出一个请求并在你的后端处理这个请求,网上有很多关于如何做的例子。
    【解决方案2】:

    在您的节点应用程序上,添加一个 POST 路由:app.post('/sendData', (req, res)) =&gt; { console.log(req.body.yourFieldName) }。这将打印字段上的任何数据:yourFieldName 发送到路由:http://localhost:3000/sendData

    在您的客户端应用程序上,您可以使用 Axios、fetch 或简单的 XHR 之类的东西来发出 POST 请求,以便将 passed_variable 发送到上述端点。

    【讨论】:

      【解决方案3】:

      你可以用 axios 和 cdn https://cdnjs.com/libraries/axios

      <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
      

      之后你可以调用 axios.post()

      const data = { passed_variable }
      axios.post('https://example.com', data)
      

      你可以在这里找到文档 -> https://axios-http.com/docs/intro

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-19
        • 2015-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-27
        • 1970-01-01
        相关资源
        最近更新 更多