UNPKG

enhancer-data-bridge

Version:

A bridge between Enhancer Clould and user business datasource

52 lines (46 loc) 1.65 kB
module.exports = `'use strict'; var logger = require('log4js').getLogger('io'); var escape = require('mysql').escape; var escapeId = require('mysql').escapeId; (function (connectionName, parameters, serverVariables, Enhancer, done) { var async = require('async'); var transaction = []; var $0, $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; var databaseService = Enhancer.getDatabaseService(); databaseService.beginTransaction(connectionName, function(err, conn) { if (err) { err.message = 'Can not get connection from database. Reason: ' + err.message; return done(err); } var databaseConnection = conn; {{TRANSACTION-BLOCKS}} async.series(transaction, function(err, results) { if (err) { return conn.rollback(function(rberr) { conn.release(); done(err || rberr); }); } results = results.map(function(r, index) { if (r.rows && r.rows.length > 3000) { logger.warn('第 ' + index + ' 条 SQL 执行结果超过 3000 条,实际条数:' + r.rows.length + '。返回给前端的结果中只会包含前 3000 条数据。'); r.rows = r.rows.slice(0, 3000); } return r; }); conn.commit(function(err, result) { if (err) { return conn.rollback(function(rberr) { conn.release(); done(err || rberr); }); } conn.release(); done(null, { success: true, results: results }); }); }); }); });`