1.1.4 • Published 1 year ago
@pakwoon/mysql-utils v1.1.4
@pakwoon/mysql-utils
nodejs 连接 mysql 辅助方法
便捷操作
genOperation
生成 mysql 便捷执行器
入参
config(Config) - mysql 连接信息host(string) - 服务地址/IPport(string) - 端口user(string) - 用户名password(string) - 密码database(string) - 数据库名称multipleStatements(boolean) - 一次执行多条 sql
返回
object(Object) - 操作器对象executor((sql: Sql) => Promise) - 执行器insert((options: InsertOptions) => Promise) - 插入执行器del((options: DeleteOptions) => Promise) - 删除执行器update((options: UpdateOptions) => Promise) - 更新执行器detail((options: SelectOptions) => Promise) - 详情执行器list((options: SelectOptions) => Promise) - 列表执行器pageList((options: SelectOptions) => Promise) - 分页列表执行器
InsertOptions、DeleteOptions、UpdateOptions、SelectOptions 详细信息请查看下文的拼接字符串部分
连接 mysql
genExecutor
生成 mysql 执行器
入参
config(Config) - mysql 连接信息host(string) - 服务地址/IPport(string) - 端口user(string) - 用户名password(string) - 密码database(string) - 数据库名称multipleStatements(boolean) - 一次执行多条 sql
返回
((sql: Sql) => Promise) - 执行器
executor
调用 genExecutor 生产的执行器方法 executor
入参
sql(Sql)sqlStr(string) - sql 字符串params((string | number | boolean)[]) - mysql2 包中 connection.query 方法接收的第二个参数
返回
connection.query 查询结果
sql 字符串便捷拼接
getInsertSqlStr
拼接 insert sql 字符串
入参 - InsertOptions
table(string) - 表格名称key(string) - 插入行对应的 keyvalues(string) - 插入行对应的 values
返回
(string) - 拼接后的 insert sql 字符串
getDeleteSqlStr
拼接 delete sql 字符串
入参 - DeleteOptions
table(string) - 表格名称where(string) - 删除条件
返回
(string) - 拼接后的 delete sql 字符串
getUpdateSqlStr
拼接 update sql 字符串
入参 - UpdateOptions
table(string) - 表格名称set(string) - 更新字段字符串where(string) - 更新条件
返回
(string) - 拼接后的 update sql 字符串
getSelectSqlStr
拼接 select sql 字符串
入参 - SelectOptions
select(string) - 查询字段table(string) - 表格名称where? (string) - 过滤条件pageInfo? (PageInfo) - 分页对象pageIndex(number) - 查询页码(起始:1)pageSize(number) - 单页条数
返回
(string) - 拼接后的 select sql 字符串
获取标准返回对象
ApiRes
标准返回对象
属性
success(boolean) - 返回成功/失败message(string) - 返回信息errorCode(string) - 错误码data? (T=any) - 返回数据对象
genGetApiResult
生成获取返回对象方法,用于添加扩展错误信息
入参
errorMessage? (Record<string, string>) - 附加自定义错误信息
返回
(<T = any>(options?: Partial<ApiRes>) => ApiRes) - 获取返回对象方法
getApiResult
调用 genGetApiResult 方法,返回的 getApiResult
入参
options(Partial) - ApiRes 对象可选化
返回
(ApiRes) - 标准返回对象
内部逻辑
默认返沪成功的标准返回对象
const res = {
success: true,
message: _errorMessage[ERROR_CODE.SUCCESS], // “成功”
errorCode: ERROR_CODE.SUCCESS, // "SUCCESS"
};options.success === false 并无传入 options.errorCode
const res = {
success: false,
message: _errorMessage[ERROR_CODE.FAIL], // “失败”
errorCode: ERROR_CODE.FAIL, // "FAIL"
};options.errorCode 传入并不等于 “SUCCESS“
const res = {
success: false,
message: _errorMessage[errorCode], // 自动匹配对应错误信息
errorCode: errorCode, // 传入的 errorCode
};错误码与错误信息
/** 错误码 */
export enum ERROR_CODE {
SUCCESS = 'SUCCESS',
FAIL = 'FAIL',
SYSTEM_ERROR = 'SYSTEM_ERROR',
NOT_FOUND = 'NOT_FOUND',
MISSING_PARAMS = 'MISSING_PARAMS',
}
/** 错误信息 */
export const ErrorMessage: Record<ERROR_CODE, string> = {
[ERROR_CODE.SUCCESS]: '成功',
[ERROR_CODE.FAIL]: '失败',
[ERROR_CODE.SYSTEM_ERROR]: '系统错误',
[ERROR_CODE.NOT_FOUND]: '找不到对应信息',
[ERROR_CODE.MISSING_PARAMS]: '缺少必传参数',
};辅助方法
missingParams
检查 params 对象中是否存在值为 undefined 的属性
入参
params(Record<string | number | symbol, any>) - 检查对象keys? ((number | string | symbol)[]) - 检查属性名称集合
返回
(boolean) - 是否存在