如何使用 node.js&Mysql 从在线表单向数据库添加数据?
Posted
技术标签:
【中文标题】如何使用 node.js&Mysql 从在线表单向数据库添加数据?【英文标题】:How to add data to database with node.js&Mysql from online form? 【发布时间】: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');
部分,但它在它自己运行时可以工作,所以我需要一个解决方案:如何运行它在线?
【问题讨论】:
【参考方案1】:Node.js 和您的浏览器都使用 Javascript。但是,它们是完全独立的环境。
不幸的是,您不能只从浏览器中调用 Node.js 函数。
您将需要构建一个单独的 Node.js 服务器。此服务器执行 MySQL 查询并应侦听 HTTP 请求。
您的客户端应该使用 HTTP 客户端(例如 fetch)调用您的服务器。只有当所有这些事情都到位时,您才能实现您希望做的事情。
【讨论】:
谢谢!我会试试看。看起来真的很干净。谢谢以上是关于如何使用 node.js&Mysql 从在线表单向数据库添加数据?的主要内容,如果未能解决你的问题,请参考以下文章
node.js & mysql - 如何获取最后插入的 ID?
如何使用 node.js、socket.io 和 mysql 显示实时数据?
node.js mysql 池 beginTransaction & 连接
node.js + MySQL & JSON-result - 回调问题 & 对客户端无响应
Node.js & MySQL - 错误:1251 - 客户端不支持服务器请求的身份验证协议;考虑升级 MySQL 客户端