3.5 测试数据库删除

简介: 本节实现数据库的删除与修改功能测试。在`weaponSkinModel.js`中新增按ID修改价格和扣减库存的功能,通过`index.js`编写测试代码验证逻辑正确性,结合控制台输出与数据库数据双向校验,确保增删改查操作符合预期,提升数据交互稳定性。(238字)

3.5 测试数据库删除
新增删除功能代码
在index.js中增加测试代码
重复上述测试步骤
3.6 测试数据库修改
新增修改功能代码
JavaScript
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// model/weaponSkinModel.js(新增)
// 👉 第4个功能:按 ID 修改价格
async function updateWeaponSkinPrice(id, newPrice) {
if (!id) throw new Error('ID 不能为空');
if (typeof newPrice !== 'number' || newPrice < 0) {
throw new Error('价格必须为非负数值');
}

try {
const [result] = await pool.execute(
'UPDATE weapon_skins SET price = ? WHERE id = ?',
[newPrice, id]
);
if (result.affectedRows === 0) throw new Error(未找到 ID=${id} 的数据);
return { success: true, message: 价格更新为 ${newPrice} 元 };
} catch (error) {
console.error(❌ 修改 ID=${id} 价格失败:, error.message);
throw error;
}
}

// 更新暴露
module.exports = {
getAllWeaponSkins,
addWeaponSkin,
deleteWeaponSkin,
updateWeaponSkinPrice // 新增
};
在index.js中增加测试代码
JavaScript
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 👉 测试 4:修改价格(对应 updateWeaponSkinPrice 功能)
async function testUpdateWeaponSkinPrice() {
console.log('===== 开始测试:修改价格 =====');
const testId = 3; // 实际存在的 ID
const newPrice = 1799.99;
try {
await testPoolConnection();
const result = await weaponSkinModel.updateWeaponSkinPrice(testId, newPrice);
console.log('修改结果:', result);
} catch (error) {
console.log('修改失败!原因:', error.message);
}
console.log('===== 测试结束:修改价格 =====\n');
}

// 👉 执行当前测试(只运行这一个)
// testGetAllWeaponSkins();
// testAddWeaponSkin();
// testDeleteWeaponSkin(1);
testUpdateWeaponSkinPrice();
控制台和数据库双向验证,发现符合逻辑
案例练习
增加一个根据id,扣减库存的功能。函数入参为:id,stock两个参数
自己做完后再来参考:weaponSkinModel.js
JavaScript
运行代码
复制代码
自己做完后再来参考:index.js
JavaScript
运行代码
复制代码

相关文章
|
19天前
|
运维 监控 应用服务中间件
藏在Nginx配置里的“坑”:一个`if`指令引发的深夜告警
藏在Nginx配置里的“坑”:一个`if`指令引发的深夜告警
149 90
|
20天前
|
XML 机器学习/深度学习 监控
高级检索增强生成系统:LongRAG、Self-RAG 和 GraphRAG 的实现与选择
检索增强生成(RAG)已超越简单向量匹配,迈向LongRAG、Self-RAG与GraphRAG等高级形态。LongRAG通过大块重叠分片保留长上下文,提升连贯性;Self-RAG引入反思机制,动态判断检索必要性与内容相关性,增强可信度;GraphRAG构建知识图谱,支持多跳推理与复杂关系挖掘。三者分别应对上下文断裂、检索盲目性与关系表达缺失难题,代表2025年RAG工程化核心进展,可依场景组合使用以平衡准确性、成本与复杂度。
194 57
高级检索增强生成系统:LongRAG、Self-RAG 和 GraphRAG 的实现与选择
|
16天前
|
存储 SQL 分布式计算
手把手教你搞定大数据上云:数据迁移的全流程解析
本文深入探讨了企业数据迁移的核心价值与复杂挑战,重点分析了离线大数据平台在物理传输、系统耦合与数据校验三方面的难题。文章系统阐述了存储格式、表格式、计算引擎等关键技术原理,并结合LHM等工具介绍了自动化迁移的实践演进,展望了未来智能化、闭环化的数据流动方向。
336 11
手把手教你搞定大数据上云:数据迁移的全流程解析
|
12天前
|
人工智能 缓存 自然语言处理
构建AI智能体:三十九、中文新闻智能分类:K-Means聚类与Qwen主题生成的融合应用
K-Means作为最经典和广泛使用的聚类算法,以其简单性和效率在数据科学中占据重要地位。尽管有其局限性,但通过合理的初始化方法、参数调优和与大模型的结合,K-Means仍然能够解决许多实际聚类问题。与大型语言模型的结合代表了现代AI应用的一个重要方向,其中K-Means负责高效处理和大规模模式识别,而大模型负责深度的语义理解和内容生成,二者优势互补,构建出更加智能和高效的AI系统。
113 12
|
18天前
|
人工智能 自然语言处理 搜索推荐
深度解读:Geo优化“两大核心+四轮驱动”方法论的落地执行细节
在AI驱动的数字营销新时代,传统SEO面临重构。于磊老师首创“两大核心+四轮驱动”Geo优化方法论,以人性化内容与交叉验证构建可信生态,融合EEAT原则、结构化内容、精准关键词及权威引用,助力企业实现高效获客与可持续增长。
253 16
|
14天前
|
存储 SQL 运维
数据湖 vs 数据仓库 vs 数据湖仓一体:何时选哪种架构?——写给正在做数据平台的你
数据湖 vs 数据仓库 vs 数据湖仓一体:何时选哪种架构?——写给正在做数据平台的你
112 12
|
26天前
|
SQL JSON 分布式计算
【跨国数仓迁移最佳实践6】MaxCompute SQL语法及函数功能增强,10万条SQL转写顺利迁移
本系列文章将围绕东南亚头部科技集团的真实迁移历程展开,逐步拆解 BigQuery 迁移至 MaxCompute 过程中的关键挑战与技术创新。本篇为第六篇,MaxCompute SQL语法及函数功能增强。 注:客户背景为东南亚头部科技集团,文中用 GoTerra 表示。
235 20
|
21天前
|
人工智能 编解码 数据可视化
构建AI智能体:三十、精雕细琢:驾驭关键词的细微差别,解锁高质量提示词编排与视觉表征
《AI图像生成中的提示词工程艺术》摘要:文章系统阐述了人工智能图像生成中的提示词工程(Prompt Engineering)技术。通过具体案例对比,展示了细微的提示词差异如何导致图像质量的巨大分野,详细解析了提示词的核心要素、语法结构及编排方法。文章提出专业级提示词的多维描述矩阵和权重控制语法,强调精准描述与AI沟通的重要性。同时指出,提示词工程是艺术与科学的结合,需要不断练习和实验才能掌握这项数字时代的关键创造力技能。
180 11
|
17天前
|
JSON 数据可视化 Java
Spring Boot中使用Swagger3.0.0版本构建RESTful APIs
Spring Boot中使用Swagger3.0.0版本构建RESTful APIs
206 6
|
15天前
|
人工智能 测试技术
NeurlPS 2025!多伦多大学TIRE助力3D/4D 生成精准保留主体身份
TIRE提出“追踪-补全-重投影”三阶段方法,实现主体驱动的3D/4D生成。通过视频跟踪识别缺失区域,定制2D模型补全纹理,并重投影至3D空间,提升生成一致性与质量,推动动态场景生成新进展。
NeurlPS 2025!多伦多大学TIRE助力3D/4D 生成精准保留主体身份