使用Node.js搭配express框架快速构建后端业务接口模块Demo!实际开发中,有很多项目,其实都是可以使用node.js来完成对接mysql数据库的,express确实使用起来非常简单,入手快,效率非常高。下面是一个简单的案例,帮助大家快速掌握了解,如何构建自己的后端管理模块。
1:
步骤 1:初始化项目
在命令行中进入你想要创建项目的文件夹,运行:
mkdir my-express-backend cd my-express-backend npm init -y
步骤 2:安装 Express
安装
express
和其他必要的依赖:
npm install express mysql2 body-parser cors
这个速度很快,几秒钟就可以按照完成了。非常快捷。
2:
- express:核心框架
- mysql2:连接 MySQL 数据库
- body-parser:解析请求体,常用来解析 POST 请求的数据
- cors:跨域资源共享,允许你的前端与后端进行跨域请求
步骤 3:创建 index.js
文件
在项目根目录下创建 index.js
文件,这是 Express 服务器的入口。
touch index.js
步骤 4:编写 Express 服务器代码
打开 index.js
文件并写入以下代码:
// 引入依赖
const express = require('express');
const mysql = require('mysql2');
const cors = require('cors');
const bodyParser = require('body-parser');
// 创建 Express 实例
const app = express();
const port = 3000;
// 允许跨域请求
app.use(cors());
// 解析 JSON 请求体
app.use(bodyParser.json());
// 创建数据库连接池
const db = mysql.createPool({
host: 'localhost', // 数据库主机
user: 'root', // 数据库用户名
password: 'password', // 数据库密码
database: 'lost_and_found', // 数据库名称
});
// 测试数据库连接
db.getConnection((err, connection) => {
if (err) {
console.error('Database connection failed:', err.stack);
return;
}
console.log('Connected to database as ID', connection.threadId);
connection.release();
});
// 创建一个简单的 API 端口,返回 Hello World
app.get('/', (req, res) => {
res.send('Hello World!');
});
// 获取当前数据库中所有帖子
app.get('/posts', (req, res) => {
const query = 'SELECT * FROM posts';
db.query(query, (err, results) => {
if (err) {
console.error('Error fetching posts:', err);
return res.status(500).json({ message: 'Error fetching posts' });
}
res.json(results);
});
});
// 获取帖子的数量
app.get('/posts/count', (req, res) => {
const query = 'SELECT COUNT(*) AS count FROM posts';
db.query(query, (err, results) => {
if (err) {
console.error('Error fetching posts count:', err);
return res.status(500).json({ message: 'Error fetching posts count' });
}
res.json({ count: results[0].count });
});
});
// 用户注册 API
app.post('/register', (req, res) => {
const { username, email, password } = req.body;
const query = 'INSERT INTO users (username, email, password) VALUES (?, ?, ?)';
db.query(query, [username, email, password], (err, result) => {
if (err) {
console.error('Error registering user:', err);
return res.status(500).json({ message: 'Error registering user' });
}
res.status(201).json({ message: 'User registered successfully' });
});
});
// 启动服务器
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});
3. 启动 Express 后端服务器
node index.js
在项目根目录下,执行以下命令启动服务器:执行这个指令,即可打开服务器端程序了。我们简单的测试一下,入下图所示:
说明,这个测试接口是我自己写的,地址,你可以自己改成自己喜欢的地址,自己测试。
4. 数据库设置
确保你已经在 MySQL 中创建了数据库和表,并配置好数据库连接。
创建数据库和表
假设你的数据库叫做 lost_and_found
,你可以执行以下 SQL 来创建表:
CREATE DATABASE lost_and_found;
USE lost_and_found;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
5. 测试后端 API
在浏览器或者 Postman 中,你可以访问以下 URL 来测试后端功能:
http://localhost:3000/
:测试是否能访问到 Hello World。http://localhost:3000/posts
:获取所有帖子数据。http://localhost:3000/posts/count
:获取帖子数量。
6. 使用 Postman 测试注册 API
你可以使用 Postman 测试用户注册接口。请求方法是 POST
,URL 是 http://localhost:3000/register
,请求体(Body)格式为 JSON:
{
"username": "testuser",
"email": "test@example.com",
"password": "testpassword"
}
7. 扩展功能
在完成基础的 Express 后端搭建后,你可以继续扩展功能,加入更多的 API 端点,例如:
- 用户登录和身份验证(JWT)
- 发布帖子、删除帖子等
- 用户积分管理
- 黑名单功能等
8. 部署到生产环境
当你完成本地开发和测试后,下一步就是将 Express 后端部署到生产环境。可以使用一些常见的部署方式,例如:
- Heroku:一个简单的云平台服务,适合小型应用。
- DigitalOcean、AWS EC2:适合需要更多控制的应用,可以配置自己的服务器。
- Docker:如果你使用 Docker,可以将应用容器化并在任何支持 Docker 的平台上运行。
9. 总结
- 初始化项目:使用
npm init
创建package.json
。 - 安装依赖:安装 Express、MySQL 以及其他依赖。
- 编写服务器代码:创建 Express 实例,连接 MySQL,并定义 API。
- 测试后端功能:使用浏览器或 Postman 测试后端 API。
- 扩展功能:添加用户身份验证、发布帖子等功能。
- 部署到生产:使用 Heroku 或其他平台将你的应用部署到生产环境。
这样,你就完成了一个基本的 Express 后端搭建。随着项目的进展,你可以逐步增加更多的功能和优化。