html - 如何在不使用路由器和 ejs 模块的情况下将表单数据从静态网站发布到 mysql 数据库
问题描述
我是后端开发的新手,尽管已经阅读了大量的视频教程和书籍,但没有解决我的问题的性质,我已经与这个问题作斗争了大约两个星期。如果有人能来帮助我,我将非常感激。以下是一些相关细节 HTML 表单
<div class="wrap">
<h2>Sign Up</h2>
<form action="" method="POST" autocomplete="off">
<input type="text" name="firstname" required placeholder="First Name">
<input type="text" name="lastname" required placeholder="Last Name">
<input type="email" name="email" required placeholder="E-mail">
<input type="password" name="password" required placeholder="Password">
<input type="password" name="password" required placeholder="Password">
<input type="submit" value="Submit">
</form>
</div>
server.js 文件
const express = require("express");
const app = express();
const bodyParser = require("body-parser")
const mysql = require("mysql");
let connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'couriersystem'
});
var port = 3000;
app.post('/', function (request, response) {
let sql = `INSERT INTO clients(firstname, lastname, email, password)
VALUES(?, ?, ?, ?)`;
// execute the insert statment
connection.query(sql);
connection.end();
});
app.use(express.static("public"));
app.listen(port, function () {
console.log("Server listening on port" + port);
});
app.get("/", function (req, res) {
res.render("index.html")
});
解决方案
试试这个建议:
app.post('/', function (request, response) {
/*get value and set as variables from the html form*/
let fname = request.body.firstname;
let lname = request.body.lastname;
let email = request.body.email;
let pwd = request.body.password;
let sql = `INSERT INTO clients(firstname, lastname, email, password)
VALUES('${fname}','${lname}','${email}','${pwd}')`;
// execute the insert statment
connection.query(sql, function(err, results, fields) {
if (err) {
return response.status(500).send(err); /*return error message if insert unsuccessful*/
}
else {
connection.end();
response.redirect('/'); /*redirecting the page after successful insert*/
}
})
});
还要编辑您的 html 表单以添加"/"
操作,因此:
<form action="/" method="POST" autocomplete="off">
推荐阅读
- c - C中用户定义的邻接矩阵
- elasticsearch - 时间间隔聚合
- javascript - .catch 前面的点是什么?(firebase 身份验证,本机反应)
- python - Python 2d 列表 - 更改元素后,打印输出没有变化
- java - 使用 spring-data jpa 阅读视图 - hibernate AUTO JPA 生成类型
- python - 我可以使用 connectedComponents 或 findContours 更好地识别正方形吗?在 python 上使用 opencv
- android - 在 Play 商店控制台中获取设备屏幕分辨率的统计信息
- css - ie中的垂直对齐占位符
- java - 如何在不同的片段/活动中维护 android 中的会话?
- r - R中的冲突过滤器命令