当前位置: 首页 > news >正文

做本地门户网站wordpress 主题 简介

做本地门户网站,wordpress 主题 简介,临沂网站设计制作,深圳品牌型网站建设此封装适合于使用 SQL 直接操作数据库的小型后端项目,更多功能请查阅MySQL2官网 // 代码保存到单独的 js 文件const mysql require(mysql2/promise)const debug true let conn/*** 执行 SQL 语句* param {String} sql* param {*} params* returns {Array}*/ const…

此封装适合于使用 SQL 直接操作数据库的小型后端项目,更多功能请查阅MySQL2官网

// 代码保存到单独的 js 文件const mysql = require('mysql2/promise')const debug = true
let conn/*** 执行 SQL 语句* @param {String} sql* @param {*} params* @returns {Array}*/
const query = (sql, params)=> {if(!conn)  throw Error(`数据库连接未创建,请配置 useDB、dbName 属性...`)debug && console.debug("[SQL]", sql, "[PARAMS]",Array.isArray(params)?params[0]:(params||"(无)"))return conn.query(sql, params)
}exports.query = query/*** 创建 mysql 连接(使用连接池)* @param {import('.').ServerConfig} config* @returns*/
exports.mysqlBuilder = async config=> {if(!!conn)  returnconn = mysql.createPool({host: config.host || 'localhost',port: config.port || 3306,user: config.user || 'root',password: config.pwd || '',database: config.database,waitForConnections: true,connectionLimit: 10,idleTimeout: 180 * 1000,enableKeepAlive: true,keepAliveInitialDelay: 0})return conn
}/*** 返回指定的sql结果数量* @param {String} table - 表名* @param {String} condition - 条件 SQL* @returns {Number}*/
exports.count = async (table, condition, params) => {let [ results ] = await query(`SELECT COUNT(*) FROM ${table} WHERE ${condition}`, params)return Number(results[0])
}/*** 按 ID 查询数据(单条)* @param {String} id* @param {String} table* @param {String} idField - ID字段名,默认 id* @returns {Object}*/
exports.findById= async (id, table, idField="id")=>{let [ results ] = await query(`SELECT * FROM ${table} WHERE ${idField}=? LIMIT 1`, id)return results[0]
}/*** 保存数据到指定表* @param {Object} obj - 待保存对象(默认取全部的字段,排除_开头)* @param {String} table - 表名* @param {Array<String>} ignores - 忽略的字段* @returns*/
exports.saveObjToTable = async (obj, table, ignores=[])=>{let fields = Object.keys(obj).filter(k=> !(k.startsWith("_")  || ignores.includes(k)))let [ results ] = await query(`INSERT INTO ${table} (${fields.join(",")}) VALUES (${fields.map(v=>'?').join(",")})`, fields.map(v=> obj[v]))return results
}/*** 将对象保存到指定数据表* @param {Object} obj - 待保存对象(默认取全部的字段,排除_开头)* @param {String} table - 表名* @param {String} idField - 主键字段名* @param {Array<String>} ignores - 忽略的字段* @returns*/
exports.updateObjToTable = async (obj, table, idField="id", ignores=[])=>{let fields = Object.keys(obj).filter(k=> !(k!=idField, k.startsWith("_")  || ignores.includes(k) || obj[k]===undefined))let [ results ] = await query(`UPDATE ${table} set ${fields.map(f=>`${f}=?`).join(",")} WHERE ${idField}=?`,fields.concat(idField).map(v=> obj[v]))return results
}/*** 将对象的某个字段进行 JSON 处理* @param {Object} obj - 待处理对象* @param {Array<String>} fields - 待转换的属性清单* @param {Boolean} toString - 转换为字符串,false=反序列到JSON对象*/
exports.dealJSONField = (obj, fields, toString = true)=> {if(typeof(obj) == 'object'){fields.filter(k=> k in obj).forEach(k=> obj[k] = toString ? JSON.stringify(obj[k]) : JSON.parse(obj[k]))}return obj
}

如何使用

const { mysqlBuilder, query } = require("basic/server/mysql")await mysqlBuilder({ host:"localhost", database:"test", user:"root" })let [ results ] = await query(`这里填写 SQL 语句`)
console.info(results )
// 更多语法请参考官方文档 https://sidorares.github.io/node-mysql2/docs
http://www.yayakq.cn/news/188461/

相关文章:

  • 文书写作网站京美建站有代码吗
  • 荥阳市城乡建设规划网站电子商务网站业务流程
  • 参与网站网站建设可判几年怎么制作网页教程步骤
  • 网站域名管理怎么登陆东莞购物网站建设
  • 没有备案的网站怎么访问不了wordpress百家号
  • 视频发布网站有哪些内容广州做网站公司
  • 企业网站备案审核需要多长时间网站开发要多钱
  • 社交网站开发注意事项微信开发工具文档
  • 建设网站的功能包括哪些站酷网站
  • site之后网站在首页说明说明行业网站设计公司
  • 企业核名网站网站建设服务费入
  • 网站的弹窗是怎么做的制作微信网页
  • 南通制作网站广州免费制作网站软件
  • 山东省监理建设协会网站华为域名购买
  • 建设部监理工程师考试网站北京网站制作收费标准
  • 食品网站模板长沙知名网站
  • 返利淘客网站源码柳州网站建设哪家
  • 瓷砖网站源码个人站长做导航网站
  • 做育儿类网站用什么程序好企业为什么要做手机网站
  • 个人做电子商务网站备案一般做企业网站需要什么资料
  • 网站建设项目可行性扬州百姓网免费发布信息网
  • 离型剂技术支持东莞网站建设深圳网站建设方案书
  • 网站表单提交到qq邮箱野望赏析
  • 南通的电商网站建设无锡网络公司平台
  • 织梦网站免费模板外贸自主建站平台
  • 唯品会网站开发费用网站搭建的费用
  • 深圳富通做网站更换网站首页模板怎么做
  • 企业网站的建设的功能定位如何建设网站兴田德润在那里
  • 旅游网站的系统建设的意义可以直接做海报的网站
  • 网站备案主体黑名单深圳网站建设的客户在哪里