【问题标题】:How to add data to database with node.js&Mysql from online form?如何使用 node.js&Mysql 从在线表单向数据库添加数据?
【发布时间】:2021-10-14 07:42:18
【问题描述】:

我正在尝试使用 MySQL 和 node.js 将数据添加到数据库中,只需单击提交按钮,数据应该最终会出现在数据库中。我收到一条我有点理解的错误消息,但我不知道该怎么做。我希望你们中的一些人可以帮助我。没有完全完成和简化,但所有重要的东西都在那里。

我的表单 HTML:

<!doctype html>
<html lang="en">
  <head>
    
    <title>Mr.Gutter</title>
   <script src="submitButtonClicked.js"></script>
   
  </head>
  <body>
    
<form>
    <div class="form-group">
        <label for="email">Email address</label>
        <input type="email"  id="email" aria-describedby="emailHelp" placeholder="Enter email" required>
        
   </div>
                
    <center>
    <button type="button"  id ="submitbt"onclick="submitForm()" >Submit</button>
    </center>
</form>


        <script >
       
            //work on it later
            //Openmanual();
        </script>

    
  </body>
</html>

按钮的javascript代码:

function submitForm()
{

    
    //get all elements from the form
    console.log('submitForm booting')
    
    var email=document.getElementById("email").value;
    

    console.log('values get....')
    console.log(email)

    dataTable()
}

dataTabel() 函数是它变得混乱的地方。

function dataTable()
{
    var mysql = require('mysql');


    var con = mysql.createConnection({

        host:"localhost",
        user:"root",
        password:"",
        database:"nodedb"

    })

    con.connect(function(err){
        if (err) throw err;
        console.log("Connected to The Database!");
        
        var sql="CREATE TABLE customers (email VARCHAR(255))";
        con.query(sql,function(err,result){
            if (err) throw err;
            console.log("Table has been created!")
        });

    });
}

当代码自行运行时,它似乎正在工作(我的意思是表已创建)但是当我尝试在网站上运行它时,我收到一条错误消息:

Uncaught ReferenceError: require is not defined
    at dataTable (submitButtonClicked.js:3)
    at submitForm (submitButtonClicked.js:54)
    at HTMLButtonElement.onclick (form.html:379)

(submitButtonClicked.js 是 Javascript 文件,form.html 是表单文件)我知道问题出在 require('mysql'); 部分,但它在它自己运行时可以工作,所以我需要一个解决方案:如何运行它在线?

【问题讨论】:

    标签: javascript html mysql node.js


    【解决方案1】:

    Node.js 和您的浏览器都使用 Javascript。但是,它们是完全独立的环境。

    不幸的是,您不能只从浏览器中调用 Node.js 函数。

    您将需要构建一个单独的 Node.js 服务器。此服务器执行 MySQL 查询并应侦听 HTTP 请求。

    您的客户端应该使用 HTTP 客户端(例如 fetch)调用您的服务器。只有当所有这些事情都到位时,您才能实现您希望做的事情。

    【讨论】:

    • 谢谢!我会试试看。看起来真的很干净。谢谢
    猜你喜欢
    • 2013-04-14
    • 2017-07-14
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    相关资源
    最近更新 更多