diff --git a/models/AttributeModel.js b/models/AttributeModel.js index f22ef19..7e9c62d 100644 --- a/models/AttributeModel.js +++ b/models/AttributeModel.js @@ -1,22 +1,50 @@ -// 导出一个函数,这个函数接受数据库对象db和一个回调函数callback作为参数 -module.exports = function(db,callback){ - // 用户模型 - // 使用db.define方法定义一个模型,模型名为AttributeModel - db.define("AttributeModel",{ - // 定义模型的属性 - attr_id : {type: 'serial', key: true}, // 自增主键 - attr_name : String, // 属性名称,类型为字符串 - cat_id : Number, // 分类ID,类型为数字 - attr_sel : ["only", "many"], // 属性选择类型,可以是"only"或"many" - // "only":输入框(唯一) "many":后台下拉列表/前台单选框 - attr_write: ["manual","list"], // 属性写入方式,可以是"manual"或"list" - // "manual":手工录入 "list":从列表选择 - attr_vals: String, // 属性值,类型为字符串 - delete_time : Number // 删除时间,类型为数字 - },{ - // 定义模型的选项 - table : "sp_attribute" // 指定模型对应的数据库表名为sp_attribute +/// 导出一个函数,这个函数是模块的主要接口,它接受两个参数: +// 第一个参数是数据库对象db,它提供了与数据库进行交互的能力; +// 第二个参数是一个回调函数callback,它将在模型定义成功后被调用。 +module.exports = function(db, callback) { + // 开始使用db.define方法定义一个名为"AttributeModel"的模型。 + // 这个模型用于表示商品或产品的属性。 + db.define("AttributeModel", { + // 以下是该模型属性的定义部分: + + // attr_id属性:作为主键,其类型为'serial',表示这是一个自增的序列号。 + // key: true表明这个属性是主键,用于唯一标识每条记录。 + attr_id: {type: 'serial', key: true}, + + // attr_name属性:表示属性的名称,其类型为字符串(String)。 + // 用于存储属性的描述性名称。 + attr_name: String, + + // cat_id属性:表示分类ID,其类型为数字(Number)。 + // 这个属性用于将属性与特定的商品分类关联起来。 + cat_id: Number, + + // attr_sel属性:表示属性的选择类型,其值为一个数组,包含"only"和"many"。 + // "only"表示该属性为唯一选择(如输入框),"many"表示该属性可以从多个选项中选择(如下拉列表或单选框)。 + attr_sel: ["only", "many"], + + // attr_write属性:表示属性的写入方式,其值为一个数组,包含"manual"和"list"。 + // "manual"表示属性值需要手工录入,"list"表示属性值应从预定义的列表中选择。 + attr_write: ["manual", "list"], + + // attr_vals属性:表示属性的值,其类型为字符串(String)。 + // 存储属性的实际值,可能是一个逗号分隔的字符串(对于"many"类型的属性)。 + attr_vals: String, + + // delete_time属性:表示删除时间,其类型为数字(Number)。 + // 用于逻辑删除,即不真正从数据库中删除记录,而是通过设置一个删除时间来标记记录已删除。 + delete_time: Number + }, { + // 以下是该模型的选项或配置的定义部分: + + // table选项:指定这个模型在数据库中对应的表名。 + // 在这个例子中,表名被指定为"sp_attribute",这是数据库中存储属性信息的表的名称。 + table: "sp_attribute" }); - // 调用回调函数,传入无参数 + + // 模型定义完成。现在,我们调用之前传入的回调函数callback。 + // 由于模型定义操作通常不会返回任何结果(除非出现错误),因此这里我们传入一个空参数。 + // 回调函数可以在此处执行一些后续的逻辑处理,如初始化数据、启动服务等。 + // 但在这个例子中,回调函数可能只是被用来简单地表示模型定义过程的结束。 return callback(); } \ No newline at end of file diff --git a/models/CategoryModel.js b/models/CategoryModel.js index 85dc024..7d53ec6 100644 --- a/models/CategoryModel.js +++ b/models/CategoryModel.js @@ -1,27 +1,44 @@ -// 导出一个函数,这个函数接受数据库对象db和一个回调函数callback作为参数 +// 这是一个Node.js模块,它导出一个函数。这个函数用于定义一个数据库模型,并允许在模型定义完成后执行回调函数。 module.exports = function(db, callback) { - // 用户模型定义开始 - // 使用db.define方法定义一个模型,模型名为CategoryModel - // 这个模型用于操作数据库中的分类信息 + // 开始定义用户模型(在这个上下文中,是分类模型)。 + // 函数接受一个数据库对象db和一个回调函数callback作为参数。 + // 使用db对象的define方法来定义一个名为CategoryModel的新模型。 + // 这个模型用于操作数据库中的分类信息,如创建、读取、更新和删除分类。 db.define("CategoryModel", { - // 定义模型的属性 - // 分类ID,自增主键,每次新增分类时,这个ID会自动递增 - cat_id : {type: 'serial', key: true}, - // 分类名称,类型为字符串,用于存储分类的名称 - cat_name : String, - // 父分类ID,类型为数字,用于表示当前分类的上级分类 - cat_pid : Number, - // 分类级别,类型为数字,用于表示分类的层级关系 - cat_level : Number, - // 是否已删除,类型为布尔值,用于标记该分类是否已被逻辑删除 - cat_deleted: Boolean + // 定义模型的第一个属性:分类ID(cat_id)。 + // 这是一个自增主键,意味着每当向数据库添加新分类时,这个ID都会自动递增。 + // type: 'serial'指定了这是一个序列类型(自增类型),key: true表示这是主键。 + cat_id: {type: 'serial', key: true}, + + // 定义模型的第二个属性:分类名称(cat_name)。 + // 这是一个字符串类型,用于存储分类的名称或标题。 + cat_name: String, + + // 定义模型的第三个属性:父分类ID(cat_pid)。 + // 这是一个数字类型,用于表示当前分类的上级分类(如果存在的话)。 + // 通过这个属性,可以建立分类之间的层级关系或父子关系。 + cat_pid: Number, + + // 定义模型的第四个属性:分类级别(cat_level)。 + // 这也是一个数字类型,用于表示分类在层级结构中的位置或深度。 + // 例如,顶级分类的级别可能是1,其子分类的级别可能是2,依此类推。 + cat_level: Number, + + // 定义模型的第五个属性:是否已删除(cat_deleted)。 + // 这是一个布尔值类型,用于标记该分类是否已被逻辑删除(即在数据库中保留但不再显示或使用)。 + // 这是一种软删除的方式,允许在不实际删除数据的情况下,从系统中移除分类。 + cat_deleted: Boolean }, { - // 定义模型的选项 - // 指定模型对应的数据库表名为sp_category - // 这意味着该模型的所有数据库操作都会针对sp_category表进行 - table : "sp_category" + // 定义模型的选项或配置。 + // 在这个例子中,只定义了一个选项:table。 + // 这个选项指定了模型对应的数据库表名。 + // 在这个例子中,表名是"sp_category"。 + // 这意味着该模型的所有数据库操作(如查询、插入、更新和删除)都会针对这个表进行。 + table: "sp_category" }); - // 模型定义结束,调用回调函数,传入无参数 - // 这通常表示模型已经成功定义,可以进行后续操作 + + // 模型定义完成。现在调用回调函数callback,并传入空参数(或无参数)。 + // 这通常表示模型已经成功定义,可以进行后续操作(如查询数据库、添加数据等)。 + // 回调函数可以用于执行任何需要在模型定义完成后立即执行的操作。 return callback(); } \ No newline at end of file diff --git a/models/GoodAttributeModel.js b/models/GoodAttributeModel.js index 3db0c81..99b0354 100644 --- a/models/GoodAttributeModel.js +++ b/models/GoodAttributeModel.js @@ -1,40 +1,46 @@ // 导出一个函数,这个函数接受两个参数: -// 第一个参数是数据库对象db,用于数据库操作; -// 第二个参数是一个回调函数callback,用于在操作完成后执行特定逻辑。 +// 第一个参数是数据库对象db,它提供了与数据库交互的API,用于执行数据库操作; +// 第二个参数是一个回调函数callback,它在模型定义完成后被调用,用于执行一些后续逻辑。 module.exports = function(db, callback) { - // 开始定义用户模型,这里的用户模型实际上是一个商品属性模型。 - // 使用db.define方法,该方法用于在数据库中定义一个新的模型(或称为表结构)。 - // 模型名为GoodAttributeModel,代表商品属性模型。 + // 使用db.define方法开始定义一个新的数据库模型。 + // 这个模型实际上是一个商品属性模型,用于存储商品的属性信息。 + // 模型的名称被指定为"GoodAttributeModel",这是在代码中引用该模型时使用的标识符。 db.define("GoodAttributeModel", { - // 以下是模型属性的定义: - // id属性:作为主键,其类型为'serial',表示这是一个自增的序列号。 - // key: true表示这个属性是主键。 + // 定义模型的第一个属性:id。 + // 这是一个自增的主键,用于唯一标识数据库中的每一条记录。 + // type: 'serial'指定了这是一个序列类型(自增类型),key: true表示这是主键。 id: {type: 'serial', key: true}, - // goods_id属性:表示商品ID,其类型为数字(Number)。 - // 用于关联到具体的商品记录。 + // 定义模型的第二个属性:goods_id。 + // 这是一个数字类型的属性,用于存储关联的商品ID。 + // 通过这个属性,可以将商品属性与具体的商品记录关联起来。 goods_id: Number, - // attr_id属性:表示属性ID,其类型为数字(Number)。 - // 用于关联到具体的属性记录,表示这个商品属性是哪种属性。 + // 定义模型的第三个属性:attr_id。 + // 这也是一个数字类型的属性,用于存储关联的属性ID。 + // 通过这个属性,可以将商品属性与具体的属性记录关联起来,表示这个商品属性是哪种属性。 attr_id: Number, - // attr_value属性:表示属性值,其类型为字符串(String)。 - // 存储商品该属性的具体值,如颜色为红色、尺码为L等。 + // 定义模型的第四个属性:attr_value。 + // 这是一个字符串类型的属性,用于存储商品属性的具体值。 + // 例如,如果属性是颜色,那么attr_value就可能是"红色"、"蓝色"等。 attr_value: String, - // add_price属性:表示附加价格,其类型为数字(Number)。 + // 定义模型的第五个属性:add_price。 + // 这是一个数字类型的属性,用于存储由于这个属性而导致的附加价格。 // 如果某个属性会导致商品价格变动(如不同颜色价格不同),则在这里存储增加的金额。 add_price: Number }, { - // 以下是模型选项的定义: - // table选项:指定这个模型在数据库中对应的表名。 - // 在这个例子中,表名为sp_goods_attr,表示商品属性表。 + // 定义模型的选项或配置。 + // 在这个例子中,只定义了一个选项:table。 + // table选项指定了模型在数据库中对应的表名。 + // 在这个例子中,表名被指定为"sp_goods_attr",这是数据库中存储商品属性信息的表的名称。 table: "sp_goods_attr" }); - // 模型定义完成,调用回调函数callback。 - // 传入无参数,表示模型定义成功,可以进行后续操作。 - // 回调函数通常用于执行一些后续的逻辑处理,如初始化数据、启动服务等。 + // 模型定义完成。现在,我们调用回调函数callback。 + // 由于我们没有向回调函数传递任何参数,这通常表示模型定义成功,没有发生错误。 + // 回调函数可以在这里执行一些后续操作,如初始化数据、启动服务等。 + // 在这个例子中,回调函数被简单地调用,没有执行任何额外的逻辑。 return callback(); } \ No newline at end of file diff --git a/models/GoodPicModel.js b/models/GoodPicModel.js index c355fb7..ee3e98d 100644 --- a/models/GoodPicModel.js +++ b/models/GoodPicModel.js @@ -1,44 +1,44 @@ -// 导出一个函数,这个函数接受两个参数: -// 第一个参数是数据库对象db,它提供了与数据库进行交互的能力; -// 第二个参数是一个回调函数callback,它在模型定义完成后被调用。 +// 导出一个函数,这个函数是模块的主要接口,它接受两个参数: +// 第一个参数是数据库对象db,它封装了与数据库进行交互的所有能力; +// 第二个参数是一个回调函数callback,它将在模型定义成功完成后被调用。 module.exports = function(db, callback) { - // 开始定义一个用户模型,但这里实际上是一个商品图片模型。 - // 使用db.define方法,它是用于在数据库中定义新模型(或表结构)的。 - // 这里的模型名为GoodPicModel,代表商品图片模型。 + // 使用db.define方法开始定义一个新的数据库模型。 + // 需要注意的是,虽然这里提到的是“用户模型”,但实际上定义的是一个商品图片模型。 + // 模型的名称被指定为"GoodPicModel",这是在代码中引用该模型时的标识符。 db.define("GoodPicModel", { - // 以下是模型属性的定义部分: + // 以下是该模型属性的定义,每个属性都对应数据库表中的一个字段: - // pics_id属性:作为主键,其类型为'serial',表示这是一个自增的序列号。 - // key: true表明这个属性是主键,用于唯一标识每条记录。 + // pics_id属性:这是模型的主键,类型为'serial',表示这是一个自增的序列号。 + // key: true表明这个属性是主键,用于唯一标识数据库中的每一条记录。 pics_id: {type: 'serial', key: true}, - // goods_id属性:表示商品ID,其类型为数字(Number)。 - // 这个属性用于关联商品图片与其对应的商品记录。 + // goods_id属性:表示关联的商品ID,类型为Number。 + // 这个属性用于将商品图片与其对应的商品记录关联起来。 goods_id: Number, - // pics_big属性:表示商品的大图地址,其类型为字符串(String)。 - // 存储商品大图的URL链接,用于展示商品的高清图片。 + // pics_big属性:表示商品的大图地址,类型为String。 + // 存储商品大图的URL链接,用于在需要高清图片展示时使用。 pics_big: String, - // pics_mid属性:表示商品的中图地址,其类型为字符串(String)。 - // 存储商品中图的URL链接,用于在需要中等尺寸图片时展示。 + // pics_mid属性:表示商品的中图地址,类型为String。 + // 存储商品中图的URL链接,用于在需要中等尺寸图片展示时使用。 pics_mid: String, - // pics_sma属性:表示商品的小图地址,其类型为字符串(String)。 - // 存储商品小图的URL链接,通常用于商品列表或缩略图展示。 + // pics_sma属性:表示商品的小图地址,类型为String。 + // 存储商品小图的URL链接,通常用于商品列表或缩略图展示场景。 pics_sma: String }, { - // 以下是模型选项的定义部分: + // 以下是该模型的选项或配置的定义部分: // table选项:指定这个模型在数据库中对应的表名。 - // 在这个例子中,表名为sp_goods_pics,代表商品图片表。 + // 在这个例子中,表名被指定为"sp_goods_pics",这是数据库中存储商品图片信息的表的名称。 // 所有与GoodPicModel相关的数据库操作都会针对这个表进行。 table: "sp_goods_pics" }); - // 模型定义完成,现在调用回调函数callback。 - // 由于模型定义通常不会返回任何结果(除非出错),因此这里传入无参数。 + // 模型定义完成。现在,我们调用之前传入的回调函数callback。 + // 由于模型定义操作通常不会返回任何结果(除非出现错误),因此这里我们传入一个空参数。 // 回调函数可以在此处执行一些后续的逻辑处理,如初始化数据、启动服务等。 - // 但在这个例子中,回调函数可能只是简单地表示模型定义过程的结束。 + // 但在这个例子中,回调函数可能只是被用来简单地表示模型定义过程的结束,或者进行一些简单的日志记录。 return callback(); } \ No newline at end of file diff --git a/models/PermissionModel.js b/models/PermissionModel.js index 50092bf..b5515f0 100644 --- a/models/PermissionModel.js +++ b/models/PermissionModel.js @@ -1,26 +1,52 @@ -// 导出一个函数,这个函数接受数据库对象db和一个回调函数callback作为参数 +// 导出一个函数,该函数是模块的主要接口。 +// 它接受两个参数:数据库对象db(用于数据库操作)和一个回调函数callback(在模型定义后执行)。 module.exports = function(db, callback) { - // 用户模型 - // 使用db.define方法定义一个模型,模型名为PermissionModel + // 定义一个名为"PermissionModel"的模型,用于表示系统中的权限。 + // 使用db.define方法,该方法来自传入的数据库对象db。 db.define("PermissionModel", { - // 定义模型的属性 + // 定义模型的属性,这些属性将映射到数据库表中的列。 + + // ps_id属性:权限的唯一标识符,类型为'serial',表示这是一个自增的序列。 + // key: true表明这个属性是主键。 ps_id: {type: 'serial', key: true}, -// 权限ID,自增主键 + // 注释:权限ID,自增主键,用于唯一标识每个权限记录。 + + // ps_name属性:权限的名称,类型为字符串(String)。 + // 用于存储权限的描述性名称。 ps_name: String, -// 权限名称,类型为字符串 + // 注释:权限名称,类型为字符串,用于标识和描述权限。 + + // ps_pid属性:父权限的ID,类型为数字(Number)。 + // 用于表示权限之间的层级关系,即哪个权限是另一个权限的父级。 ps_pid: Number, -// 父权限ID,类型为数字 + // 注释:父权限ID,类型为数字,用于建立权限的层级结构。 + + // ps_c属性:控制器名称,类型为字符串(String)。 + // 在MVC架构中,控制器负责处理用户的请求。 + // 这个属性可能用于指示哪个控制器与这个权限相关联。 ps_c: String, -// 控制器名称,类型为字符串 + // 注释:控制器名称,类型为字符串,用于指示处理请求的控制器。 + + // ps_a属性:动作名称,类型为字符串(String)。 + // 在MVC架构中,动作是控制器中的一个方法,用于执行特定的任务。 + // 这个属性可能用于指示哪个动作与这个权限相关联。 ps_a: String, -// 动作名称,类型为字符串 + // 注释:动作名称,类型为字符串,用于指示控制器中要执行的动作。 + + // ps_level属性:权限级别,类型为字符串(String)。 + // 这个属性可能用于表示权限的重要性或访问级别。 ps_level: String -// 权限级别,类型为字符串 + // 注释:权限级别,类型为字符串,用于表示权限的等级或重要性。 }, { - // 定义模型的选项 + // 定义模型的选项,这些选项用于配置模型的行为或属性。 + + // table选项:指定这个模型在数据库中对应的表名。 + // 在这个例子中,表名被指定为"sp_permission"。 table: "sp_permission" -// 指定模型对应的数据库表名为sp_permission + // 注释:指定模型对应的数据库表名为sp_permission,这是存储权限信息的数据库表。 }); - // 调用回调函数,传入无参数 + + // 调用回调函数callback,表示模型定义已经完成。 + // 回调函数不接受任何参数,因为它主要用于执行一些后续的逻辑处理,而不是处理模型定义的结果。 return callback(); } \ No newline at end of file diff --git a/models/ReportTwoModel.js b/models/ReportTwoModel.js index 8ed2037..8cf4e96 100644 --- a/models/ReportTwoModel.js +++ b/models/ReportTwoModel.js @@ -1,22 +1,51 @@ -// 导出一个函数,这个函数接受数据库对象db和一个回调函数callback作为参数 +// 导出一个函数,这个函数是模块的主要接口。 +// 它接受两个参数:数据库对象db(用于数据库操作)和一个回调函数callback(在模型定义后执行)。 module.exports = function(db, callback) { - // 报表模型2 - // 使用db.define方法定义一个模型,模型名为ReportTwoModel + + // 这一行开始定义了一个名为"ReportTwoModel"的模型。 + // db.define是数据库操作的一部分,用于创建一个新的模型。 + // 这个模型可能用于存储报表数据,特别是与页面相关的统计数据。 db.define("ReportTwoModel", { - // 定义模型的属性 + + // 以下是模型属性的定义部分。 + // 每个属性都映射到数据库表中的一个列。 + + // id属性:这是模型的主键,用于唯一标识每条记录。 + // type: 'serial' 表示这是一个自增的整数序列。 + // key: true 表示这是主键字段。 id: {type: 'serial', key: true}, -// 唯一标识ID,自增主键 + // 注释:这是报表记录的唯一标识ID,它是一个自增的主键。 + + // rp2_page属性:用于存储与报表关联的页面名称。 + // 类型为String,表示这是一个字符串类型的字段。 rp2_page: String, -// 页面名称,类型为字符串 + // 注释:这是报表关联的页面名称,它是一个字符串类型的字段。 + + // rp2_count属性:用于存储与页面相关的统计数据,如访问次数。 + // 类型为Number,表示这是一个数字类型的字段。 rp2_count: Number, - // 计数,类型为数字(可能是页面访问次数或其他统计数据) + // 注释:这是与报表页面相关的统计数据,如访问次数,它是一个数字类型的字段。 + + // rp2_date属性:用于存储报表的生成日期。 + // 类型为"date",并且time: false表示只存储日期部分,不存储时间部分。 rp2_date: { type: "date", time: false } -// 报表日期,类型为日期,不包含时间信息 + // 注释:这是报表的生成日期,只包含日期部分,不包含时间部分,它是一个日期类型的字段。 + }, { - // 定义模型的选项 + + // 以下是模型选项的定义部分。 + // 这些选项用于配置模型的行为或属性。 + + // table选项:指定这个模型在数据库中对应的表名。 + // 在这个例子中,表名被指定为"sp_report_2"。 table: "sp_report_2" -// 指定模型对应的数据库表名为sp_report_2 + // 注释:这是模型对应的数据库表名,存储报表相关数据的表名为sp_report_2。 + }); - // 调用回调函数,传入无参数 + + // 这一行调用了回调函数callback。 + // 回调函数是在模型定义完成后执行的,它不接受任何参数。 + // 在这个例子中,回调函数的调用表示ReportTwoModel模型已经成功定义。 + // 这之后,模型就可以在应用程序的其他部分被引用和使用了。 return callback(); } \ No newline at end of file