'use strict' const Types = { Int: 'int', Stirng: 'string' } const OPTypes = { And: 'and', Or: 'or' } const getValueStringByType = function(types, value) { let sql = '' if (Types.Int === types) { sql = value } else if (Types.Stirng === types) { sql = '"' + value +'"' } return sql } const generatorValues = function(param) { let sql = '' for (let i = 0; i < param.values.length; ++i) { sql += getValueStringByType(param.types[i], param.values[i]) +',' } return sql } const generatorQuery = function(param) { let sql = '' if (param.where === undefined || param.where.length === 0) { return sql } sql += ' where ' for (let i = 0; i < param.where.length; ++i) { sql += '`' + param.where[i].field + '`=' sql += getValueStringByType(param.where[i].types, param.where[i].value) if (param.operator[i] !== undefined) { sql += ' ' + param.operator[i] + ' ' } } return sql } const insert = async function(fastify, param) { const connection = await fastify.mysql.getConnection() let sql = 'insert into `' + param.table +'` (' for (let i = 0; i < param.field.length; ++i) { sql += '`' + param.field[i] +'`,' } let lestCh = sql.charAt(sql.length - 1) if (lestCh === ',') { sql = sql.slice(0, -1) } sql += ') value(' sql += generatorValues(param) lestCh = sql.charAt(sql.length - 1) if (lestCh === ',') { sql = sql.slice(0, -1) } sql += ');' console.log('sql', sql) const res = await connection.query(sql) connection.release() if (null === res) { console.log('insert failed') return {errno: -1, message: '注册失败'} } return {errno: 0, message: ''} } const query = async function(fastify, param) { const connection = await fastify.mysql.getConnection() let sql = 'select ' for (let i = 0; i < param.field.length; ++i) { sql += '`' + param.field[i] +'`,' } let lestCh = sql.charAt(sql.length - 1) if (lestCh === ',') { sql = sql.slice(0, -1) } sql += ' from ' + param.table sql += ' ' + generatorQuery(param) + ';' console.log('sql', sql) const res = await connection.query(sql) console.log(res) connection.release() if (null === res) { console.log('query failed') return {errno: -1, message: ''} } return {errno: 0, data: res[0], message: ''} } module.exports = { insert, query, Types, OPTypes }