var path = require("path"); // 引入Node.js的path模块,用于处理文件和目录的路径 // 引入自定义的 DAO 模块,可能用于数据访问操作,具体功能取决于其内部实现 daoModule = require("./DAO"); // 引入当前目录下的DAO模块 // 引入位于 modules/database 目录下的数据库模块,使用 path.join 拼接当前工作目录与相对路径 databaseModule = require(path.join(process.cwd(), "modules/database")); // 引入数据库模块,路径根据当前工作目录动态确定 /** * 清除商品属性 * * @param {[type]} goods_id 商品的唯一标识符,用于确定要清除属性的商品 * @param {Function} cb 回调函数,用于处理清除操作的结果 * 当操作完成时,将调用此函数。若操作出现错误,第一个参数将包含错误信息;若操作成功,第一个参数为 null */ module.exports.clearGoodAttributes = function (goods_id, cb) { // 从数据库模块中获取数据库对象 db = databaseModule.getDatabase(); // 获取数据库实例 // 定义 SQL 语句,用于删除 sp_goods_attr 表中 goods_id 匹配的记录 sql = "DELETE FROM sp_goods_attr WHERE goods_id =?"; // SQL删除语句 // 执行 SQL 查询操作,将 goods_id 作为参数传递给 SQL 语句 database.driver.execQuery( // 执行SQL查询的方法 sql // SQL语句 , [goods_id], // 参数数组,包含要删除的goods_id function (err) { // 回调函数,处理执行结果 // 如果执行查询时出现错误,调用回调函数并传递错误信息 if (err) return cb("删除出错"); // 错误处理 // 若操作成功,调用回调函数,将第一个参数设为 null cb(null); // 成功处理,无返回值 }); } /** * 查询商品属性列表 * * @param {[type]} goods_id 商品的唯一标识符,用于确定要查询属性的商品 * @param {Function} cb 回调函数,用于处理查询操作的结果 * 当操作完成时,将调用此函数。若操作出现错误,第一个参数将包含错误信息;若操作成功,第一个参数为 null,第二个参数为查询结果 */ module.exports.list = function (goods_id, cb) { // 从数据库模块中获取数据库对象 db = databaseModule.getDatabase(); // 获取数据库实例 // 定义 SQL 语句,使用 LEFT JOIN 连接 sp_goods_attr 和 sp_attribute 表进行查询 // 查询内容包括多个属性,从 sp_goods_attr 表中查询一些属性,从 sp_attribute 表中查询一些属性 // 并根据 good_attr.goods_id 进行筛选 sql = "SELECT good_attr.goods_id,good_attr.attr_id,good_attr.attr_value,good_attr.add_price,attr.attr_name,attr.attr_sel,attr.attr_write,attr.attr_vals FROM sp_goods_attr as good_attr LEFT JOIN sp_attribute as attr ON attr.attr_id = good_attr.attr_id WHERE good_attr.goods_id =?"; // SQL查询语句 // 执行 SQL 查询操作,将 goods_id 作为参数传递给 SQL 语句 database.driver.execQuery( // 执行SQL查询的方法 sql // SQL语句 , [goods_id], // 参数数组,包含要查询的goods_id function (err, attrs) { // 回调函数,处理执行结果 // 如果执行查询时出现错误,调用回调函数并传递错误信息 if (err) return cb("删除出错"); // 注意:这里的错误信息提示为“删除出错”可能是个笔误,应为“查询出错” // 若操作成功,调用回调函数,将第一个参数设为 null,第二个参数为查询结果 cb(null, attrs); // 成功处理,返回查询结果 }); }