自封装node 的简单增删改查
1 首先引入的上篇node 链接mysql 里面的js
var connect = require('./nodemysql.js');
2 定义常量
const customerSQL = { queryAll: function(dbname, callback, obj) { //obj查找的条件 若没有全部返回 var where = '' if (obj == undefined) { where = '' } else { var s = ' WHERE ' for (var i in obj) { s += i + '="' + obj[i] + '" and ' } where = s.substring(0, s.lastIndexOf(' and')) } var sql = 'SELECT * FROM ' + dbname + where; console.log(sql) connect.query(sql, function(err, result) { if (err) { console.log('[SELECT ERROR] - ', err.message); callback({ code: 0, mes: err.message }) return; } callback({ code: 1, res: result }) return; }) // console.log(result); }, insert: function(dbname, callback, obj) { //obj插入的数据 var sql = 'insert into ' + dbname + ' set ?' console.log(sql) connect.query(sql, obj, function(err, result) { if (err) { console.log('[insert ERROR] - ', err.message); callback({ code: 0, mes: err.message }) return; } callback({ code: 1, res: result }) // { // "code": 1, // "res": { // "fieldCount": 0, // "affectedRows": 1, // "insertId": 16,//插入行的id // "serverStatus": 2, // "warningCount": 0, // "message": "", // "protocol41": true, // "changedRows": 0 // } // } return; }) }, update: function(dbname, callback, arr) { //[{},{}] 第一个obj是要改的数据 第二个obj是查询条件 var where = '' var obj = arr[1] if (obj == undefined) { callback({ code: 0, mes: 'no key' }); return; } else { var s = ' where ' for (var i in obj) { s += i + '="' + obj[i] + '" and ' } where = s.substring(0, s.lastIndexOf(' and')); } var sql = 'update ' + dbname + ' set ?' + where; connect.query(sql, arr[0], function(err, result) { if (err) { console.log('[update ERROR] - ', err.message); callback({ code: 0, mes: err.message }) return; } callback({ code: 1, res: result }); // { // "code": 1, // "res": { // "fieldCount": 0, // "affectedRows": 1, // "insertId": 0, // "serverStatus": 34, // "warningCount": 0, // "message": "(Rows matched: 1 Changed: 1 Warnings: 0", // "protocol41": true, // "changedRows": 1 //被改变的行数 // } // } return; }) }, delete: function(dbname, callback, obj) { var where = '' if (obj == undefined) { callback({ code: 0, mes: 'no key' }); return; } else { var s = ' WHERE ' for (var i in obj) { s += i + '="' + obj[i] + '" and ' } where = s.substring(0, s.lastIndexOf(' and')) } var sql = 'delete from ' + dbname + where; connect.query(sql, function(err, result) { if (err) { console.log('[delete ERROR] - ', err.message); callback({ code: 0, mes: err.message }) return; } callback({ code: 1, res: result }); // { // "code": 1, // "res": { // "fieldCount": 0, // "affectedRows": 1,//受影响的行数 // "insertId": 0, // "serverStatus": 2, // "warningCount": 0, // "message": "", // "protocol41": true, // "changedRows": 0 // } // } return; }) // console.log(result); }, };
3 、输出常量和connet
module.exports = { customerSQL, connect };
4、 使用
查询:
var { customerSQL, connect } = require('./customersql.js'); app.get('/bayid', function(req, res) { var i = req.query.id ? { id: req.query.id } : undefined var show = function(result) { res.send(result); } customerSQL.queryAll('fruit', show, i) });
修改:
router.post('/setname', function(req, res, next) { var ss = req.body.name if (ss == undefined) { res.json({ code: 0, message: '修改错误,没有key' }) return }; var nickname = { name: ss }; var show = function(result) { console.log(result) var r = {} if (result.code == 0) { res.json({ code: 0, message: '修改失败' }) } else { res.json({ code: 1, message: '修改成功' }) } }; customerSQL.update('user', show, [nickname, { id: 69 }]) });
自封装node 的简单增删改查的更多相关文章
- ado.net的简单数据库操作(三)——简单增删改查的实际应用
果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...
- Redis:五种数据类型的简单增删改查
Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...
- node 后台使用增删改查(4)
无论node还是java增删改查都是一样的原理,变得是配合框架使用时候有简便方法而已. 这里我接着上一篇开始讲,使用同一个数据库(数据库创建)这里必须创建了数据库 优化:为了维护方便这里我们把sql语 ...
- 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作
专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- 04-springboot整合elasticsearch初识-简单增删改查及复杂排序,分页,聚合操作
前面大概了解了一下elasticsearch的数据存储和数据的查询.现在学习一下,es的复杂操作. 官网相关文档地址:https://www.elastic.co/guide/en/e ...
- linq的简单增删改查
Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好 ...
- Android_ADB 常用 shell命令 和 sqlite3 简单增删改查
今天学习了一个ADB的常用命令.接下来简单使用几个常用ADB shell 命令. 首先我们得明白什么是adb.exe ADB -Android Debug Bridge, 是 Android sdk ...
- MyBatis之二:简单增删改查
这一篇在上一篇的基础上简单讲解如何进行增删改查操作. 一.在mybatis的配置文件conf.xml中注册xml与注解映射 <!-- 注册映射文件 --> <mappers> ...
随机推荐
- Beta阶段冲刺集合贴
第零篇准备博客:https://www.cnblogs.com/coolgirls/p/9066239.html 第一篇冲刺博客:https://www.cnblogs.com/coolgirls/p ...
- 【原创】【Android】揭秘 ART 细节 ---- Garbage collection
背景 Dalvik :http://zh.wikipedia.org/wiki/Dalvik%E8%99%9A%E6%8B%9F%E6%9C%BA ART :http://source.andro ...
- cad.net 利用win32api实现一个命令开关参照面板
首先我要判断是否已经打开了参照面板. 然而cad自己没有相关的系统变量.这时我就需要利用到win32api来判断程序是否打开了参照面板了. 首先学习的是 https://blog.csdn.net/b ...
- Nginx---(main block)
正常运行必备配置 1,user USERNAME [GROUPAME] ; 指定用于运行worker进程的用户和组: user nginx nginx; 2, pid /PATH/TO/PID_F ...
- Testing - 软件测试知识梳理 - 软件性能测试
软件性能测试的基本概念 软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是软件在完成该功能时展示出来的及时性. 软件性能的指标 响应时间:是指系统对请求作出响应的时间,并且 ...
- 51Node 1051---最大子矩阵和
题目链接 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值. 例如:3*3的矩阵: -1 3 -1 2 -1 3 -3 1 2 和最大的子矩阵是 ...
- Docker容器绑定外部IP和端口
Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务. 以下操作通过myfirstapp镜像模拟,如何制作myfirstapp镜像请点击此处. 1.外部访问容器容器启动之后,容器中可以 ...
- php持续推送信息到客户端的方法
<?php set_time_limit(0); $i=1; while($i++) { echo $i,'<br />'; ob_flush();//冲刷出(送出)输出缓冲区中的内 ...
- SpringMVC教程1
一.SpringMVC介绍 1.MVC介绍 ==模型-视图-控制器(MVC== 是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中 ...
- 用JDOM解析XML文件时如何解决中文问题?如何解析?
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import ja ...