目录
阅读前必读
一、前期准备
1.1 创建项目目录
1.2 初始化项目
1.3 安装项目包
1.3.1 安装Express
1.3.2 安装MySQL
2.1 创建数据库
2.3 创建用户表
三、编写代码
3.1 编写前端页面
3.2 后端代码
3.2.1 引入模块
3.2.2 创建express应用程序
3.2.3 注册“body-parser”中间件
3.2.4 创建与数据库的连接
3.2.5 设置ejs模版和指定视图目录
3.2.6 默认查询全部用户数据
3.2.7 通过用户名查询数据
3.2.8 配置项目监听端口
3.4 后端整体代码
3.5 整体目录结构
3.6 运行项目
阅读前必读
在1分钟内,使用 Express 快速编写一个简单的登录功能
Express EJS渲染技术详解
10分钟学习如何使用 Express+Mysql开发图书管理系统
在开始之前,请确保已在您的电脑上安装了 Node.js 和 npm,并且它们的版本分别为:
- node v16.14.2
- npm 8.5.0
请按照以下步骤进行安装和确认版本:
- 打开终端或命令行界面。
- 输入以下命令以检查 Node.js 版本。
node -v
3. 输入以下命令以检查 npm 版本:
npm -v
如果您的没有Nodejs和npm,请前往 Node.js 官方网站(https://nodejs.org)下载并安装相应版本的 Node.js。
一、前期准备
1.1 创建项目目录
首先,我们可以创建一个项目目录,命名为 "express-user",这个目录将用于存放我们的项目文件。
?
1.2 初始化项目
我们在终端输入 "npm init -y" 命令对项目进行初始化。
npm init -y
1.3 安装项目包
1.3.1 安装Express
使用以下命令可以快速下载并安装 Express:
npm install express
1.3.2 安装MySQL
npm install mysql
1.3.3 安装body-parser
npm install body-parser
1.3.4 安装ejs
npm install ejs
?二、创建数据表
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 );
插入用户数据
INSERT INTO `user` (`id`, `username`, `password`) VALUES (1, 'user1', '123'); INSERT INTO `user` (`id`, `username`, `password`) VALUES (2, 'user2', '123');
三、编写代码
3.1 编写前端页面
我们在项目目录下创建一个名为
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>用户管理</title> <style> body { background-color: #fffaf6; } .container { width: 300px; margin: 0 auto; } .container h2{ text-align: center; } .container input{ color: #d3d3d3; background-color: #FFF; border: 0; border-radius: 10px; width: 180px; height: 35px; padding: 0 10px; } .container input::placeholder { color: #d3d3d3; } .container button { color: #FFF; background-color: #ff6038; border: none; border-radius: 10px; width: 80px; height: 35px; margin-left: 10px; } .table { width: 100%; background-color: #f5efea; border-radius: 10px; margin-top: 20px; text-align: center; } .table th { color: #050505; border-bottom: 1px solid #424140; } .table td { color: #424140 } </style> </head> <body> <div class="container"> <h2>用户数据查询</h2> <form method="get" action="/getUserByName"> <input name="username" placeholder="请输入用户名"/> <button type="submit">查询</button> </form> <table class="table"> <thead> <tr> <th>ID</th> <th>用户名</th> <th>密码</th> </tr> </thead> <tbody> <% users.forEach(function(user, index) { %> <tr> <td><%= index+1 %></td> <td><%= user.username %></td> <td><%= user.password %></td> </tr> <% }); %> </tbody> </table> </div> </body> </html>
3.2 后端代码
在您的应用程序根目录下,创建一个名为app.js的文件,并编写相应的代码。
3.2.1 引入模块
- express: 帮助我们更方便地构建和管理Web应用程序。
- body-parser: 它是一个处理请求体数据的中间件。
- mysql: 它是mysql驱动包。
- path: 它是Node.js内置的模块之一,用于处理文件路径。
const express = require("express"); const bodyParser = require("body-parser"); const path = require("path"); const mysql = require("mysql");
3.2.2 创建express应用程序
const app = express();
3.2.3 注册“body-parser”中间件
app.use() 用于注册中间件。bodyParser.urlencoded() 用于解析 URL 编码的请求体数据,并将其转换为 JavaScript 对象。
app.use(bodyParser.urlencoded({ extended: false }));
3.2.4 创建与数据库的连接
需要将数据库的用户名和密码填在对应的位置
// 创建与数据库的连接 const connection = mysql.createConnection({ host: 'localhost', user: '你的用户名', password: '你的密码', database: 'express_data' }); // 连接到数据库 connection.connect((err) => { if (err) throw err; console.log('连接数据库成功'); });
3.2.5 设置ejs模版和指定视图目录
// 设置ejs模板引擎 app.set("view engine", "ejs"); app.set("views", path.join(__dirname, "views")); // 指定视图文件夹路径
3.2.6 默认查询全部用户数据
app.get() 用于处理 HTTP GET 请求的方法。res.render() 将数据返回到页面。
app.get("/", (req, res) => { connection.query("SELECT * FROM user", (error, results) => { if (error) throw error; res.render("index", { users: results }); }); });
3.2.7 通过用户名查询数据
app.get("/getUserByName", (req, res) => { const username = req.query.username; connection.query( "select * from user WHERE username = ?", username, (error, result) => { if (error) throw error; console.log(result); res.render("index", { users: result }); } ); });
3.2.8 配置项目监听端口
app.listen() 用于启动 HTTP 服务器的方法。
app.listen(8080, () => { console.log("http://127.0.0.1:8080"); });
3.4 后端整体代码
const express = require("express"); const bodyParser = require("body-parser"); const path = require("path"); const mysql = require("mysql"); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); // 创建数据库连接 const connection = mysql.createConnection({ host: "localhost", user: "你的用户名", password: "你的数据库密码", database: "express_data", }); // 连接数据库 connection.connect(); // 设置ejs模板引擎 app.set("view engine", "ejs"); app.set("views", path.join(__dirname, "views")); // 指定视图文件夹路径 // 默认查询全部用户数据 app.get("/", (req, res) => { connection.query("SELECT * FROM user", (error, results) => { if (error) throw error; res.render("index", { users: results }); }); }); // 通过用户名查询用户信息 app.get("/getUserByName", (req, res) => { const username = req.query.username; connection.query( "select * from user WHERE username = ?", username, (error, result) => { if (error) throw error; console.log(result); res.render("index", { users: result }); } ); }); app.listen(8080, () => { console.log("http://127.0.0.1:8080"); });
3.5 整体目录结构
3.6 运行项目
在终端中输入以下命令来启动您的项目
node app.js
其他文章推荐:
在1分钟内,使用 Express 快速编写一个简单的登录功能
Express EJS渲染技术详解
10分钟学习如何使用 Express+Mysql开发图书管理系统