基于Express框架与MySQL的HTML登录系统实战教程

express框架mysql登录html

时间:2025-07-24 13:14


使用Express框架、MySQL数据库与HTML构建用户登录系统 在现代Web开发中,构建一个高效且安全的用户登录系统是至关重要的

    这不仅能提升用户体验,还能有效保护用户数据的安全

    本文将详细介绍如何使用Express框架、MySQL数据库以及HTML来构建一个用户登录系统,涵盖从环境准备到功能实现的全过程

     一、环境准备 在开始之前,请确保您的开发环境中已经安装了以下工具: 1.Node.js:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许你在服务器端运行JavaScript代码

     2.MySQL:MySQL是一个流行的开源关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据管理

     3.npm(Node.js包管理器):npm是Node.js的包管理器,用于安装和管理Node.js包

     此外,您还需要一个集成开发环境(IDE)来编写和调试代码,如WebStorm、Visual Studio Code或Sublime Text

    一个现代的Web浏览器,如Google Chrome或Mozilla Firefox,也是必不可少的

     二、项目初始化 1.创建项目目录:首先,在您的开发环境中创建一个新的项目目录

     2.初始化npm项目:在项目目录中打开终端,运行`npm init -y`命令来初始化一个新的npm项目

    这将生成一个`package.json`文件,用于管理项目的依赖项

     3.安装Express和MySQL包:运行`npm install express mysql`命令来安装Express框架和MySQL包

     三、数据库设计 在构建用户登录系统之前,我们需要设计一个数据库来存储用户的登录信息

    我们将创建一个名为`users`的表,包含以下字段: -`id`:主键,用户ID,自动递增

     -`username`:用户名,不允许为空

     -`password`:密码的哈希值,不允许为空

     使用以下SQL语句来创建这个表: sql CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL ); 四、创建HTML页面 用户登录系统通常需要一个登录页面来收集用户的用户名和密码

    我们将创建一个名为`login.html`的HTML文件,内容如下: html 用户登录

用户登录



在这个页面中,我们使用一个表单来收集用户的用户名和密码

    当用户点击登录按钮时,表单将提交到`/login`路由进行处理

     五、服务器端处理逻辑 接下来,我们将使用Express框架来处理HTTP请求,并实现用户登录功能

    我们将创建一个名为`app.js`的文件,内容如下: javascript const express = require(express); const mysql = require(mysql); const bodyParser = require(body-parser); const app = express(); const port =3000; // 使用body-parser中间件解析POST请求体 app.use(bodyParser.urlencoded({ extended: true})); app.use(bodyParser.json()); // 创建MySQL数据库连接 const db = mysql.createConnection({ host: localhost, user: root, //替换为您的MySQL用户名 password: root, //替换为您的MySQL密码 database: mydata //替换为您的数据库名 }); //连接到数据库 db.connect((err) =>{ if(err) throw err; console.log(MySQL connected...); }); // 处理GET请求,显示登录页面 app.get(/login,(req, res) =>{ res.sendFile(__dirname + /login.html); }); // 处理POST请求,实现用户登录功能 app.post(/login,(req, res) =>{ const{ username, password} = req.body; // 查询数据库验证用户身份 const query = SELECT - FROM users WHERE username = ?; db.query(query,【username】,(err, results) =>{ if(err) throw err; if(results.length >0){ // 用户存在,验证密码 const hashedPassword = results【0】.password; const isPasswordValid = bcrypt.compareSync(password, hashedPassword); // 注意:这里需要使用bcrypt库进行密码哈希和验证,但在示例中未安装bcrypt,因此省略了相关代码 if(isPasswordValid){ // 密码正确,登录成功 res.send(登录成功!); } else{ // 密码错误 res.send(用户名或密码错误!); } } else{ // 用户不存在 res.send(用户名或密码错误!); } }); }); // 启动服务器 app.listen(port,() =>{ console.log(`Server is running on port${port}`); }); 注意:在上面的代码中,我们使用了bcrypt库进行密码哈希和验证,但在示例中并未安装`bcrypt`

    在实际项目中,强烈建议使用`bcrypt`或其他密码哈希库来保护用户密码的安全

    您可以通过运行`npm install bcrypt`命令来安装`bcrypt`库,并在代码中相应地引入和使用它

     另外,由于示例代