Node.js 后台系统 - 基本增删改查实现

发布于:2025-07-08 ⋅ 阅读:(15) ⋅ 点赞:(0)

个人简介

👨‍💻‍个人主页: 魔术师
📖学习方向: 主攻前端方向,正逐渐往全栈发展
🚴个人状态: 研发工程师,现效力于政务服务网事业
🇨🇳人生格言: “心有多大,舞台就有多大。”
📚推荐学习: 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js实战 🍒Three.js 🍇鸿蒙开发🥭小程序
🪧使用备注:仅供学习交流 严禁用于商业用途 ,若发现侵权内容请及时联系作者
📤更新进度:持续更新内容
🤙个人名片:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧



1. 本机配置

类别 详情
设备型号 MacBook Pro(13 英寸)
设备名称 MacBook Pro
处理器 2.3 GHz 四核 Intel Core i7
内存 32 GB 3733 MHz LPDDR4X
操作系统 macOS Sequoia(版本 15.4.1)

2. 项目结构

nodejs-crud-api/
├── config/
│   └── db.js          # 数据库配置
├── models/
│   └── user.model.js  # 数据模型
├── controllers/
│   └── user.controller.js # 业务逻辑
├── utils/
│   └── tools.js # 工具类
├── routes/
│   └── user.routes.js # 路由定义
├── .env                # 环境变量
├── server.js           # 主入口文件
└── package.json

3. 搭建环境和依赖

3.1 初始化项目

新建一个nodejs-crud-api文件夹,右键用VSCode打开。输入命令初始化。

mkdir nodejs-crud-api
cd nodejs-crud-api
npm init -y

⚠️注意!Windows系统的朋友们,mysql的库使用mysql就可以。这里我用的mysql的库是mysql2

3.2 安装依赖

npm install express mongoose dotenv cors body-parser mysql2 nodemon

nodemon安装并不是强制的,安装了之后可以不用每次都重启服务器进行更新, 大家可以视个人情况而定。

3.3 创建配置文件

config/db.js

/** 引入mysql2模块 Windows朋友用mysql就可以 **/
const mysql = require('mysql2');
require('dotenv').config();// 加载 .env 文件

/** 新建数据库连接 **/
const pool = mysql.createConnection({
   
  host: '127.0.0.1',
  /** 填写你自己mysql的用户名 **/
  user: 'root',
  /** 填写你自己mysql的密码 **/
  password: 'hanweb@123',
  /** 输入你自己新建的数据库的名称 **/
  database: 'MyDB',
  port: 3306
});

// 使用 Promise 封装
const promisePool = pool.promise();

// 添加 query 方法
promisePool.query = async (sql, params) => {
   
  try {
   
    const [rows] = await promisePool.execute(sql, params);
    console.log('Query:', sql, params);
    return [rows];
  } catch (error) {
   
    console.error('Query Error:', error);
    throw error;
  }
};

module.exports = promisePool;

// 在文件末尾添加
(async () => {
   
  try {
   
    const [rows] = await promisePool.query('SELECT 1 + 1 AS solution');
    console.log(`✅ 数据库连接成功: 1 + 1 = ${
     rows[0].solution}`);
  } catch (error) {
   
    console.error('❌ 数据库连接失败:', error.message);
    console.error('请检查 .env 文件配置和 MySQL 服务状态');
  }
})();

3.4 创建数据模型

models/user.model.js

// models/userModel.js
// 正确导入数据库连接模块
const db = require('../db/connection'); // 确保路径正确

class User {
   
  // 获取所有用户
  static async getAll () {
   
    try {
   
      console.log('getAll');
      const [rows] = await db.query('SELECT * FROM user');
      return rows;
    } catch (error) {
   
      console.error('获取所有用户失败:', error);
      throw error;
    }
  }

  // 根据 ID 获取用户
  static async getById (userId) {
   
    try {
   
      const [rows] = await db.query('SELECT * FROM user WHERE userId = ?', [userId]);
      return rows[0];
    } catch (error) {
   
      console.error(`获取用户 ${
     userId} 失败:`, error);
      throw error;
    

网站公告

今日签到

点亮在社区的每一天
去签到