3.3 测试数据库查询

简介: 在本节中,通过创建 `weaponSkinModel.js` 封装数据库查询逻辑,实现查询所有武器皮肤功能,并在 `index.js` 中进行测试。目录结构清晰,代码模块化,确保数据库连接正常后,调用模型方法获取数据,控制台输出查询结果,验证功能正确性。

3.3 测试数据库查询

  1. 新建一个文件夹model,在这个文件夹下新建weaponSkinModel.js文件
    // model/weaponSkinModel.js
    const { pool } = require('../config/db');

// 👉 第1个功能:查询所有武器
async function getAllWeaponSkins() {
try {
const [rows] = await pool.execute('SELECT * FROM weapon_skins ORDER BY id DESC');
return rows;
} catch (error) {
console.error('❌ 查询所有数据失败:', error.message);
throw error;
}
}

// 只暴露当前开发的功能
module.exports = {
getAllWeaponSkins
};

  1. 创建外层index.js文件,开始对上面代码做测试,此时目录结构如下。注意层级
    weapon
    ├─ config/ # 配置文件夹
    │ └─ db.js # 数据库连接池配置
    ├─ model/ # 数据模型/CRUD 文件夹
    │ └─ weaponSkinModel.js # 武器皮肤表 CRUD 逻辑
    ├─ .env # 环境变量
    ├─ index.js # 入口文件(逐个功能测试)
    └─ package.json
  2. 在index.js文件中,创建测试代码
    // index.js
    const { testPoolConnection } = require('./config/db');
    const weaponSkinModel = require('./model/weaponSkinModel');

// 👉 测试 1:查询所有数据(对应 getAllWeaponSkins 功能)
async function testGetAllWeaponSkins() {
console.log('===== 开始测试:查询所有数据 =====');
try {
// 先测试连接池
await testPoolConnection();
// 调用查询函数
const result = await weaponSkinModel.getAllWeaponSkins();
console.log('查询成功!结果:');
console.log(result.length > 0 ? result : '暂无数据');
} catch (error) {
console.log('查询失败!原因:', error.message);
}
console.log('===== 测试结束:查询所有数据 =====\n');
}

// 👉 执行当前测试(只运行这一个)
testGetAllWeaponSkins();

  1. 运行index.js文件,可以看到控制台输出正常
相关文章
|
1天前
|
前端开发
1.前端知识回顾
创建HTML文件需将后缀命名为.html,如“01-新浪新闻-标题-排版.html”。输入英文感叹号!后回车,自动生成基础结构,修改标题并保存。在浏览器中打开预览效果,确保页面正常显示,完成初步测试。(239字)
|
1天前
|
数据可视化 关系型数据库 MySQL
2.MySQL核心知识回顾
本节介绍MySQL的安装方法,若本地未安装,可使用提供的安装包。安装完成后,推荐使用Navicat、SQLyog或DataGrip等可视化工具进行操作,方便高效管理数据库。
|
1天前
|
JavaScript 前端开发 测试技术
3.5 测试数据库删除
本节实现数据库的删除与修改功能测试。在`weaponSkinModel.js`中新增按ID修改价格和扣减库存的功能,通过`index.js`编写测试代码验证逻辑正确性,结合控制台输出与数据库数据双向校验,确保增删改查操作符合预期,提升数据交互稳定性。(238字)
|
1天前
|
JavaScript
1.2 NodeJS安装
本节介绍Node.js的安装方法,可通过官网或本地安装包进行。安装时需选择无空格的英文路径,并参考手册完成。安装后通过“win+R→cmd→node -v”命令验证环境,能输出版本号即成功,版本无需与示例一致。
|
1天前
|
JSON 前端开发 JavaScript
修改server.js
在 `server.js` 中新增分页查询API,支持按价格、外观、类别等条件筛选武器皮肤,实现前端分页与多参数过滤功能,提升数据加载效率与用户体验。
|
1天前
|
前端开发 JavaScript
修改index.html
本项目为“无畏契约皮肤商城”前端页面,包含左右广告栏、导航筛选、商品展示与分页功能,支持价格、外观、类别等多维度筛选,结构清晰,适配移动端,通过HTML、CSS与JS实现交互动态加载。
|
1天前
|
SQL 存储 关系型数据库
2.2 SQL
SQL是操作关系型数据库的标准语言,包含DDL(定义数据库结构)、DML(增删改数据)、DQL(查询数据)和DCL(权限控制)。通过实际案例讲解表设计、增删改查、条件查询、分组排序、分页及Node.js连接数据库实现完整CRUD操作。
|
1天前
|
JavaScript 前端开发 关系型数据库
3.2 nodejs连接mysql
本节介绍Node.js连接MySQL的配置方法:通过创建`.env`文件管理数据库配置,实现解耦;在`config/db.js`中使用`mysql2/promise`和`dotenv`模块建立连接池,并提供连接测试功能,确保数据库连接稳定可靠。
|
1天前
|
JavaScript 测试技术 数据库
3.4 测试数据库新增
本节实现数据库新增功能,通过在 `weaponSkinModel.js` 中添加 `addWeaponSkin` 方法,支持向 weapon_skins 表插入新数据,并在 `index.js` 中编写测试函数验证新增与查询。同时完善异常处理,确保必填字段和价格合法性,提升数据校验能力。(236字)
4.今日作业
今日作业:优化 updateWeaponSkinPrice 函数,新增价格变动日志功能,修改价格时在控制台输出详细日志,记录变更信息,提升调试与追踪效率。