10分钟学会用Node.js开发一个后台系统!实现基本增删改查

0.前言

最近几年,使用 Node.js 开发后台越来越火。Node.js 结合 npm 生态可以快速开发一套后台系统。本篇文章手把手带大家使用 Node.js 操作 MySQL 数据库快速搭建一套后台系统,实现基本的增删改查

1.环境准备

1.1 开发工具:Vscode

大家可以去官网自行下载安装

css 复制代码
https://code.visualstudio.com/

1.2 后台环境:Node

大家可以去官网自行下载安装

css 复制代码
https://nodejs.org/zh-cn

然后配置环境变量

  • windows系统:

系统环境变量 -> 新建:NODE_HOME,值为 node.js 的安装目录。path 变量新增 %NODE_HOME%

接着配置 npm 的淘宝镜像,提升下载速度

windows 电脑快捷键 Windows+R ,输入 CMD 打开命令行,然后输入:

css 复制代码
npm configsetregistry https://registry.npmmirror.com/ 

1.3 本地安装 MySQL

MySQL 分为服务端和客户端,所有数据都存放在服务端。我们可以在客户端通过写 SQL 语句操作服务端的数据。所以我们要先安装服务端。

这里我给大家下载好了 MySQL8

css 复制代码
链接: https://pan.baidu.com/s/1-fSQsIN8cvpz6rhE5jxYHg?pwd=6666 
提取码: 6666 
--来自百度网盘超级会员v10的分享

本地安装 MySQL 可以看这篇教程,这里不再赘述

css 复制代码
https://blog.csdn.net/O18670279028/article/details/145774032

1.4 vscode 安装 MySQL 插件

前面我们安装好了 MySQL 的服务端,接下来要使用客户端操作服务端了。这里使用 vscode 的 MySQL 客户端插件。

安装插件之后,点击 + 号绑定服务端的连接信息

输入主机地址,本地一般填写 localhost。

账号

密码

默认端口:3306

直接 enter 键

连接成功之后就可以看到 MySQL 服务端数据了

选中绑定的数据库,进行 sql 语句操作

2.初始化项目

在 VSCode 中新建文件夹 node-mysql-api

打开终端,初始化 npm 项目:

css 复制代码
npm init -y

安装插件:

css 复制代码
npm install express mysql2 cors
  • Express 是一个基于 Node.js 平台的极简 Web 开发框架,它帮助开发者快速构建 Web 应用和 API,支持各种中间件处理 HTTP 请求。
  • axios 是工作在前端,向后端提出申请,接收返回数据的。而 express,是工作在后端(node环境),接收前端发出的请求,并向前端返回数据。
  • cors 是一个用来解决跨域访问插件

项目结构:

3.配置数据库

创建数据库和表:SQL 语句

sql 复制代码
CREATE DATABASE IF NOT EXISTS test;
USE test;

CREATE TABLE `users` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `age` int DEFAULT NULL,
  `create_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

4.核心代码

4.1 创建数据库连接的 js

4.2 创建Express服务器(app.js)

4.3 用户接口实现(routes/users.js)

js 复制代码
const express = require('express');
const router = express.Router();
// 数据库连接池
const pool = require('../database/db.js');

// 获取所有用户
router.get('/', async (req, res) => {
  try {
    const [rows] = await pool.query('SELECT * FROM users');
    res.json(rows);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// 创建新用户
router.post('/save', async (req, res) => {
  const { name, age } = req.body;

  if (!name || !age) {
    return res.status(400).json({ error: '姓名或者年龄不能为空' });
  }

  try {
    const [result] = await pool.query(
      'INSERT INTO users (name, age) VALUES (?, ?)',
      [name, age]
    );
    res.status(201).json({ id: result.insertId, name, age });
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// 更新用户
router.put('/update/:id', async (req, res) => {
  const { id } = req.params;
  const { name, age } = req.body;

  try {
    const [result] = await pool.query(
      'UPDATE users SET name = ?, age = ? WHERE id = ?',
      [name, age, id]
    );

    if (result.affectedRows === 0) {
      return res.status(404).json({ error: '用户不存在' });
    }
    res.json({ id, name, age });
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// 删除用户
router.delete('/delete/:id', async (req, res) => {
  const { id } = req.params;

  try {
    const [result] = await pool.query(
      'DELETE FROM users WHERE id = ?',
      [id]
    );

    if (result.affectedRows === 0) {
      return res.status(404).json({ error: '用户不存在' });
    }
    res.sendStatus(204);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

module.exports = router;

5.接口测试

打开项目终端,启动后台服务器

css 复制代码
node app.js

在浏览器输入接口地址,获取所有用户信息:

知否君解读:

输入 npm app.js 相当于启动了后台系统,后台系统的端口是 3000。

我们在地址栏输入 http://localhost:3000/users/ 向后台发起请求,node 后端服务根据浏览器路径 /users 匹配到了 routes 下的users.js 接口文件。

users.js 文件根据后面的 / 匹配查询方法,在查询方法里面通过执行 sql 语句获取数据,并将数据以 json 格式返回到前端浏览器。

6.完整代码

css 复制代码
链接: https://pan.baidu.com/s/1VHveIpXCpo3Z_j3UyQMJ6w?pwd=6666 
提取码: 6666 
--来自百度网盘超级会员v10的分享

拿到代码之后记得:

  • npm install 安装依赖
  • 修改 db.js 里面连接 MySQL 数据库的账号密码等配置项
  • npm app.js 启动后端项目
相关推荐
爬山算法6 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
Cobyte7 小时前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
程序员侠客行8 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
Honmaple8 小时前
QMD (Quarto Markdown) 搭建与使用指南
后端
PP东8 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
invicinble9 小时前
springboot的核心实现机制原理
java·spring boot·后端
Goat恶霸詹姆斯9 小时前
mysql常用语句
数据库·mysql·oracle
全栈老石9 小时前
Python 异步生存手册:给被 JS async/await 宠坏的全栈工程师
后端·python
space62123279 小时前
在SpringBoot项目中集成MongoDB
spring boot·后端·mongodb