ticatec-node-common-library
Version:
A set of common classes for node express apps.
90 lines • 2.92 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
class DBConnection {
/**
* 执行select查询语句,返回数据列表
* @param sql
* @param params
* @param postConstruction
*/
listQuery(sql, params, postConstruction) {
return __awaiter(this, void 0, void 0, function* () {
let result = yield this.fetchData(sql, params, postConstruction);
let list = this.resultToList(result);
if (postConstruction) {
list.forEach(data => postConstruction(data));
}
return list;
});
}
/**
* 查询单条记录,如果有多条,返回第一条
* @param sql
* @param params
* @param postConstruction
*/
find(sql, params, postConstruction) {
return __awaiter(this, void 0, void 0, function* () {
let result = yield this.fetchData(sql, params, postConstruction);
let row = this.getFirstRow(result);
if (row && postConstruction) {
postConstruction(row);
}
return row;
});
}
/**
* 下划线转换驼峰
* @param name
* @returns {*}
*/
toCamel(name) {
return name.replace(/\_(\w)/g, (all, letter) => {
return letter.toUpperCase();
});
}
/**
* 构建字段对应列表
* @param fields
* @protected
*/
buildFieldsMap(fields) {
return null;
}
/**
* 将返回的多行数据转换成数组对象
* @param result
* @protected
*/
resultToList(result) {
let list = [];
let fields = this.buildFieldsMap(result.fields);
result.rows.forEach(row => {
let obj = {};
fields.forEach((value, key) => {
obj[value] = row[key];
});
list.push(obj);
});
return list;
}
/**
* 返回设定结果集大小的附加语句
* @param rowCount
* @param offset
*/
getRowSetLimitClause(rowCount, offset) {
return ` limit ${rowCount} offset ${offset}`;
}
}
exports.default = DBConnection;
//# sourceMappingURL=DBConnection.js.map
;