1分钟学会使用Express+MySQL实现注册功能

 

目录

阅读前必读 

一、前期准备

1.1 创建项目目录

1.2 初始化项目

1.3 安装项目包

1.3.1 安装Express

1.3.2 安装MySQL

二、创建数据表

2.1 创建数据库

2.2 打开数据库

2.3 创建用户表

三、编写代码

3.1 编写前端页面

 3.2 页面预览效果

3.3 后端代码

3.3.1 引入模块

3.3.2 创建express应用程序

3.3.3 注册“body-parser”中间件

3.3.4 创建与数据库的连接

3.3.5 注册页面接口

3.3.6 注册接口

3.3.7 配置项目监听端口

3.4 后端整体代码

3.5 运行项目

四、运行测试

4.1 打开网址

4.2 运行效果图 

4.3 效果测试

4.4 查看数据库数据


阅读前必读 

在1分钟内,使用 Express 快速编写一个简单的登录功能

Express EJS渲染技术详解

10分钟学习如何使用 Express+Mysql开发图书管理系统

在开始之前,请确保已在您的电脑上安装了 Node.js 和 npm,并且它们的版本分别为:

  • node v16.14.2
  • npm 8.5.0

请按照以下步骤进行安装和确认版本:

  1. 打开终端或命令行界面。
  2. 输入以下命令以检查 Node.js 版本。
node -v

     3. 输入以下命令以检查 npm 版本:

npm -v

 如果您的没有Nodejs和npm,请前往 Node.js 官方网站(https://nodejs.org)下载并安装相应版本的 Node.js。


一、前期准备

1.1 创建项目目录

首先,我们可以创建一个项目目录,命名为 "express-register",这个目录将用于存放我们的项目文件。

1.2 初始化项目

我们在终端输入 "npm init -y" 命令对项目进行初始化。

npm init -y

成功初始化项目后,我们的项目目录中将会多出一个重要的文件“package.json”。

1.3 安装项目包

1.3.1 安装Express

使用以下命令可以快速下载并安装 Express:

npm install express
1.3.2 安装MySQL
npm install mysql

下载成功后,你会发现在项目目录下出现了一个名为 node_modules 的文件夹和一个名为 package-lock.json 的文件。

二、创建数据表

2.1 创建数据库

首先我们需要创建一个数据库 “express_data”:

CREATE DATABASE express_data;

2.2 打开数据库

打开“express_data”数据库:

USE express_data;

2.3 创建用户表

创建用户user 表

CREATE TABLE user (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL
);

三、编写代码

3.1 编写前端页面

我们在项目目录下创建一个名为 views 的文件夹,用来存放登录页面,并且在 views 文件夹中创建一个名为 register.html 的文件,作为我们的登录页面。

​现在将以下代码复制到 register.html 文件中。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>注册</title>
	<style>
	    body {
	      background-color: #f1f1f1;
	      font-family: Arial, sans-serif;
	    }

	    .container {
	      max-width: 500px;
	      margin: 150px auto;
	      padding: 20px;
	      background-color: #fff;
	      border-radius: 5px;
	      box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	    }

	    h2 {
	      text-align: center;
	    }

	    .form-group {
	      margin-bottom: 15px;
	    }

	    label {
	      display: block;
	      font-weight: bold;
	    }

	    input[type="text"],
	    input[type="password"] {
	      width: 96%;
	      padding: 8px;
	      border-radius: 4px;
	      border: 1px solid #ccc;
	    }

	    button {
	      width: 100%;
	      padding: 10px;
	      background-color: #4CAF50;
	      color: #fff;
	      border: none;
	      border-radius: 4px;
	      cursor: pointer;
	    }

	    button:hover {
	      background-color: #45a049;
	    }
	  </style>
	</head>
	<body>
	  <div class="container">
	    <h2>用户注册</h2>
	    <form method="post" action="/register">
	      <div class="form-group">
	        <label for="username">用户名:</label>
	        <input type="text" id="username" name="username" placeholder="请输入用户名" required>
	      </div>
	      <div class="form-group">
	        <label for="password">密码:</label>
	        <input type="password" id="password" name="password" placeholder="请输入密码" required>
	      </div>
	      <div class="form-group">
	        <label for="confirm-password">确认密码:</label>
	        <input type="password" id="confirm-password" name="confirm_password" placeholder="请输入确认密码" required>
	      </div>
	      <button type="submit">注册</button>
	    </form>
	  </div>
	</body>
</html>

 3.2 页面预览效果

在浏览器中打开“register.html”文件来查看页面效果。

3.3 后端代码

在您的应用程序根目录下,创建一个名为app.js的文件,并编写相应的代码。

3.3.1 引入模块
  1. express: 帮助我们更方便地构建和管理Web应用程序。
  2. body-parser: 它是一个处理请求体数据的中间件。
  3. mysql: 它是mysql驱动包。
  4. path: 它是Node.js内置的模块之一,用于处理文件路径。
const express = require("express");
const bodyParser = require("body-parser");
const mysql = require('mysql');
const path = require("path");
3.3.2 创建express应用程序
 const app = express();
3.3.3 注册“body-parser”中间件
  1. app.use() 用于注册中间件。
  2. bodyParser.urlencoded() 用于解析 URL 编码的请求体数据,并将其转换为 JavaScript 对象。
app.use(bodyParser.urlencoded({ extended: false }));
3.3.4 创建与数据库的连接

需要将数据库的用户名和密码填在对应的位置

// 创建与数据库的连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: '你的用户名',
  password: '你的密码',
  database: 'express_data'
});

// 连接到数据库
connection.connect((err) => {
  if (err) throw err;
  console.log('连接数据库成功');
});
3.3.5 注册页面接口
  1. app.get() 用于处理 HTTP GET 请求的方法。
  2. res.sendFile() 用于发送文件作为响应。
  3. path.join() 用于将多个路径拼接成一个规范化的路径字符串。
app.get("/", (req, res) => {
    res.sendFile(path.join(__dirname, "views", "register.html")); 
});
3.3.6 注册接口
  1. req.body: 从 HTTP 请求的请求体中获取用户名和密码的代码。
  2. res.send() 用于发送HTTP响应,可以传入字符串数据。
app.post("/register", (req, res) => { 
    
    // 用户名和密码
    const username = req.body.username;
    const password = req.body.password;
    const confirm_password = req.body.confirm_password;

    // 用户名密码都不能为空
    if (!username && !password && !confirm_password) {
    	res.send('用户名或密码不能为空!');
    } else {
    	// 密码和确认密码相同
    	if (password === confirm_password) {
    		// 创建一个新用户
    		const user = {username, password};

    		// 将新用户插入到数据库中
		    connection.query('INSERT INTO user SET ?', user, (err, result) => {
		      if (err) throw err;
		      res.send('注册成功!');
		    });
	    } else {
	    	res.send("两次输入密码不相同"); 
	    }
    }
});
3.3.7 配置项目监听端口

app.listen() 用于启动 HTTP 服务器的方法。

app.listen(8081, ()=> {
	console.log("http://127.0.0.1:8081");
})

3.4 后端整体代码

如果3.3章节中的代码没弄清楚,或没有接触过 Express 框架,可以将以下代码复制到 app.js 文件中以进行测试。

const express = require("express");
const bodyParser = require("body-parser");
const mysql = require("mysql");
const path = require("path");

const app = express();

app.use(bodyParser.urlencoded({ extended: false }));

// 创建与数据库的连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'root123',
  database: 'express_data'
});

// 连接到数据库
connection.connect((err) => {
  if (err) throw err;
  console.log('连接数据库成功');
});


/**
 *  注册页面
 */
app.get("/", (req, res) => {
    res.sendFile(path.join(__dirname, "views", "register.html")); 
});


/**
 *  注册接口
 */
app.post("/register", (req, res) => { 
    
    // 用户名和密码
    const username = req.body.username;
    const password = req.body.password;
    const confirm_password = req.body.confirm_password;

    // 用户名密码都不能为空
    if (!username && !password && !confirm_password) {
    	res.send('用户名或密码不能为空!');
    } else {
    	// 密码和确认密码相同
    	if (password === confirm_password) {
    		// 创建一个新用户
    		const user = {username, password};

    		// 将新用户插入到数据库中
		    connection.query('INSERT INTO user SET ?', user, (err, result) => {
		      if (err) throw err;
		      res.send('注册成功!');
		    });
	    } else {
	    	res.send("两次输入密码不相同"); 
	    }
    }
});


app.listen(8081, ()=> {
	console.log("http://127.0.0.1:8081");
})

3.5 运行项目

在终端中输入以下命令来启动您的项目

node app.js

恭喜!您的项目已成功启动!终端显示以下消息:​

四、运行测试

4.1 打开网址

请打开您的浏览器,并在地址栏中输入以下网址:

http://127.0.0.1:8081

然后按下回车键进行访问。 

4.2 运行效果图 

如果一切正常,显示效果如下:

4.3 效果测试

在页面表当中书册测试数据进行测试,数据如3.2表所示:

测试编号用户名密码确认密码测试结果
001user1123123注册成功
002user21234123两次密码不同

编号001测试结果:

编号002测试结果:

4.4 查看数据库数据:

我们可以通过执行查询sql来查询数据库的数据:

SELECT * FROM user;

如果本篇文章对您有所帮助,请关注我,我会为编写更多优质的文章。

其他文章推荐:

在1分钟内,使用 Express 快速编写一个简单的登录功能

Express EJS渲染技术详解

10分钟学习如何使用 Express+Mysql开发图书管理系统

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序是我的命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值