3.4 测试数据库新增

简介: 本节实现数据库新增功能,通过在 `weaponSkinModel.js` 中添加 `addWeaponSkin` 方法,支持向 weapon_skins 表插入新数据,并在 `index.js` 中编写测试函数验证新增与查询。同时完善异常处理,确保必填字段和价格合法性,提升数据校验能力。(236字)

3.4 测试数据库新增
在上面的案例中,我们完成了查找,但是因为没有数据,所以无法知道查询功能是否真的正常。因此接下来我们就要陆续完成:增删改查的操作了。首先,我们来看一下新增

  1. 在weaponSkinModel.js文件中,增加新增数据的js代码
    // model/weaponSkinModel.js(新增)
    // 👉 第2个功能:新增单条数据
    async function addWeaponSkin(weaponSkin) {
    const { name, baseWeapon, skinName, price, appearance, category, stock } = weaponSkin;
    try {
    const [result] = await pool.execute(
    `INSERT INTO weapon_skins
    (name, baseWeapon, skinName, price, appearance, category, stock)
    VALUES (?, ?, ?, ?, ?, ?, ?)`,
    
    [name, baseWeapon, skinName || '', price, appearance || '未知', category || '武器皮肤', stock || 0]
    );
    return {
    success: true,
    insertId: result.insertId,
    message: '新增成功'
    };
    } catch (error) {
    console.error('❌ 新增数据失败:', error.message);
    throw error;
    }
    }

// 更新暴露(添加新功能)
module.exports = {
getAllWeaponSkins,
addWeaponSkin // 新增
};

  1. 接下来我们就可以在index.js文件中测试一下了
    // index.js(新增测试函数)
    // 👉 测试 2:新增单条数据(对应 addWeaponSkin 功能)
    async function testAddWeaponSkin() {
    console.log('===== 开始测试:新增单条数据 =====');
    // 测试用数据
    const testData = {
    name: 'AK-47 | 火神 (崭新出厂)',
    baseWeapon: 'AK-47',
    skinName: '火神',
    price: 1599.99,
    appearance: '崭新出厂',
    category: '武器皮肤',
    stock: 8
    };
    try {
    await testPoolConnection();
    const result = await weaponSkinModel.addWeaponSkin(testData);
    console.log('新增成功!结果:', result);
    // 额外验证:查询刚新增的数据
    const newData = await weaponSkinModel.getWeaponSkinById(result.insertId);
    console.log('验证新增数据:', newData);
    } catch (error) {
    console.log('新增失败!原因:', error.message);
    }
    console.log('===== 测试结束:新增单条数据 =====\n');
    }

// 👉 执行当前测试(注释掉之前的,只运行这一个)
// testGetAllWeaponSkins();
testAddWeaponSkin();

  1. 控制台打印输出正常

  2. 此时,我们放开index.js里面的testGetAllWeaponSkins单元测试,做一下查询,可以看到查到数据了

案例练习
● 在上述新增的功能中,尝试不传入name,或者价格为负数,观察是否有错误提示,如果没有请完善提示信息

相关文章
|
1天前
|
前端开发
1.前端知识回顾
创建HTML文件需将后缀命名为.html,如“01-新浪新闻-标题-排版.html”。输入英文感叹号!后回车,自动生成基础结构,修改标题并保存。在浏览器中打开预览效果,确保页面正常显示,完成初步测试。(239字)
|
1天前
|
JavaScript 前端开发 测试技术
3.5 测试数据库删除
本节实现数据库的删除与修改功能测试。在`weaponSkinModel.js`中新增按ID修改价格和扣减库存的功能,通过`index.js`编写测试代码验证逻辑正确性,结合控制台输出与数据库数据双向校验,确保增删改查操作符合预期,提升数据交互稳定性。(238字)
|
1天前
|
数据可视化 关系型数据库 MySQL
2.MySQL核心知识回顾
本节介绍MySQL的安装方法,若本地未安装,可使用提供的安装包。安装完成后,推荐使用Navicat、SQLyog或DataGrip等可视化工具进行操作,方便高效管理数据库。
|
1天前
|
JavaScript
1.2 NodeJS安装
本节介绍Node.js的安装方法,可通过官网或本地安装包进行。安装时需选择无空格的英文路径,并参考手册完成。安装后通过“win+R→cmd→node -v”命令验证环境,能输出版本号即成功,版本无需与示例一致。
|
1天前
|
前端开发 JavaScript
修改index.html
本项目为“无畏契约皮肤商城”前端页面,包含左右广告栏、导航筛选、商品展示与分页功能,支持价格、外观、类别等多维度筛选,结构清晰,适配移动端,通过HTML、CSS与JS实现交互动态加载。
|
1天前
|
JSON 前端开发 JavaScript
修改server.js
在 `server.js` 中新增分页查询API,支持按价格、外观、类别等条件筛选武器皮肤,实现前端分页与多参数过滤功能,提升数据加载效率与用户体验。
|
1天前
|
JavaScript 前端开发
修改weaponSkinModel.js
在 `weaponSkinModel.js` 中新增分页查询功能,支持按类别、品质、收藏状态、基础武器等条件筛选,返回数据列表及分页信息,提升查询效率与灵活性。
|
1天前
|
SQL 存储
查找全部武器
本文介绍如何通过SQL分页查询“武器皮肤”表数据,包含建表语句、测试数据插入及字段说明,涵盖武器名称、价格、品质、图片等信息,适用于游戏商城或道具管理系统开发。
|
1天前
|
存储 前端开发 JavaScript
首页优化
对首页进行优化,重点改进侧边栏广告轮播与筛选功能交互。通过HTML结构重构、JS动态加载筛选项并实现标签页切换及价格过滤,提升页面响应式体验与用户操作流畅度,更贴近官网视觉效果。
|
1天前
|
存储 前端开发 JavaScript
首页搭建
本项目为无畏契约皮肤商城首页搭建,包含HTML结构、CSS样式与JS交互逻辑。实现商品展示、多条件筛选及响应式布局,通过Node.js启动服务,构建完整前端页面。