使用node.js和JavaScript从HTML简单表单插入MySQL表
好吧,经过3天的努力,我被绊倒了,我只是觉得完全不知所措。我觉得自己就像一个迷失在未知世界中的小孩(我是大型机开发人员),开始感到非常沮丧,所以我决定寻求真正的帮助。我不会发布任何代码,因为它在任何程度上都没有帮助 我想要但仍然无法实现的:使用node.js和JavaScript从HTML简单表单插入MySQL表,javascript,html,mysql,node.js,Javascript,Html,Mysql,Node.js,好吧,经过3天的努力,我被绊倒了,我只是觉得完全不知所措。我觉得自己就像一个迷失在未知世界中的小孩(我是大型机开发人员),开始感到非常沮丧,所以我决定寻求真正的帮助。我不会发布任何代码,因为它在任何程度上都没有帮助 我想要但仍然无法实现的: 输入“localhost:8080/datos.html”,其中有2个“文本框”和一个按钮。按下按钮后,我希望使用Node.js将2文本框(“name”和“password”)的数据存储在MySQL数据库中 情况如下: 我正在使用Windows7 No
- 输入“localhost:8080/datos.html”,其中有2个“文本框”和一个按钮。按下按钮后,我希望使用Node.js将2文本框(“name”和“password”)的数据存储在MySQL数据库中
- 我正在使用Windows7
- Node.js安装在我的电脑上,我可以在cmd中执行“Node server.js” 终端机,一切正常
- 我可以,在'server.js'中,连接到MySQL数据库并进行查询,结果很好,我也可以插入,一切都很好
- 在同一个文件夹“example.js”中,我有一个名为“datos.html”的文件
- 使用“url解析”,我设法在浏览器(chrome)中写入“localhost:8080/datos.html”,以便在通过Node.js启动“server.js”后正确显示“datos.html”(2文本框和按钮显示正确)
任何视频、手册、教程、课程,或者任何你能帮助我实现这一简单目标的东西,我都会非常感激 如果您还没有,您可能应该使用一个节点框架,作为传入请求的路由器。多年来最受欢迎的是Express 一旦你这样做了,你就可以处理像这样的请求
app.get("/datos", (req, res) => {
// Serve the form logic here
});
app.post("/datos", (req, res) => {
// Handle the form submission logic here
});
你在正确的轨道上。为了达到预期目标,请执行以下操作 1)您可以像Jason在前面的回答中提到的那样使用express来处理所有事情 现在,作为一个应用程序,客户端和服务器在同一台机器上进行测试,就像我在我的 应用程序,直到您准备将客户端服务器与 一个接一个 2)为了使用MySQL作为存储引擎,而不是我 使用SqlLite使用来自 3)创建一个HTML文件来处理输入,如下所示 4)创建client.js文件以将请求发送到NodeJS服务器 5)创建server.js文件以接收请求并在我的例子中使用SQLite处理插入 6)要创建数据库,请在glitch console中运行以下命令
~sqlite demo <---demo is name of db in sqlite3
% create table userlist(user, password);
CTRL+D <---exit
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome to Glitch!</title>
<meta name="description" content="A cool thing made with Glitch">
<link id="favicon" rel="icon" href="https://glitch.com/edit/favicon-app.ico" type="image/x-icon">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- import the webpage's stylesheet -->
<link rel="stylesheet" href="/style.css">
<!-- import the webpage's client-side javascript file -->
<script src="/client.js"></script>
</head>
<body>
<input type="text" id="user"/>
<input type="text" id="password"/>
<button onclick="submit()">Send</button>
</body>
</html>
将其插入server.js中Insert(request)下的post处理程序的else块中,以便能够发回表值并在客户端中查看
db.all('SELECT * from userlist', function(err, rows) {
response.send(rows);
});
userRequest.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var rows = JSON.parse(this.responseText);
var tbl = "<table border=1>";
tbl += "<thead><td>Name</td><td>Password</td></thead>";
for (var i = 0; i < rows.length; i++)
{
tbl+="<tr><td>"+rows[i].user+"</td><td>"+rows[i].password+"</td></tr>";
console.log('record:', JSON.stringify(rows[i]));
}
tbl += "</table>";
document.getElementById("tbl").innerHTML = tbl;
}
}
在client.js的submit函数中插入此项,以查看提交时的表值
db.all('SELECT * from userlist', function(err, rows) {
response.send(rows);
});
userRequest.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var rows = JSON.parse(this.responseText);
var tbl = "<table border=1>";
tbl += "<thead><td>Name</td><td>Password</td></thead>";
for (var i = 0; i < rows.length; i++)
{
tbl+="<tr><td>"+rows[i].user+"</td><td>"+rows[i].password+"</td></tr>";
console.log('record:', JSON.stringify(rows[i]));
}
tbl += "</table>";
document.getElementById("tbl").innerHTML = tbl;
}
}
userRequest.onreadystatechange=function(){
if(this.readyState==4&&this.status==200){
var rows=JSON.parse(this.responseText);
var tbl=“”;
tbl+=“名称密码”;
对于(变量i=0;i
userRequest.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var rows = JSON.parse(this.responseText);
var tbl = "<table border=1>";
tbl += "<thead><td>Name</td><td>Password</td></thead>";
for (var i = 0; i < rows.length; i++)
{
tbl+="<tr><td>"+rows[i].user+"</td><td>"+rows[i].password+"</td></tr>";
console.log('record:', JSON.stringify(rows[i]));
}
tbl += "</table>";
document.getElementById("tbl").innerHTML = tbl;
}
}