自封装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> ...
随机推荐
- 2018.09.22 上海大学技术分享 - An Introduction To Go Programming Language
老实说笔者学习 Go 的时间并不长,积淀也不深厚,这次因缘巧合,同组的同事以前是上海大学的开源社区推动者之一,同时我们也抱着部分宣传公司和技术分享的意图,更进一步的,也是对所学做一个总结,所以拟定了这 ...
- 利用ArcGIS-Server瓦片制作离线地图包(*.tpk)_详细流程
1.写在前面 本人是综合了好几个资料才最终制作成功,在这个过程中发现网上好多博客写的步骤不是很详细,因此就把自己的详细制作步骤全部分享出来,可以供需要的小伙伴参考. (1)本文档不讨论tpk文件的详细 ...
- RunC容器逃逸漏洞席卷业界,网易云如何做到实力修复?
近日,业界爆出的runC容器越权逃逸漏洞CVE-2019-5736,席卷了整个基于runC的容器云领域,大量云计算厂商和采用容器云的企业受到影响.网易云方面透露,经过技术团队的紧急应对,网易云上的容器 ...
- String的substring方法
string.substring(beginIndex, endIndex) 左闭右开. 测试 public static void main(String[] args) { String a = ...
- 2017CS231n学习笔记——计算机视觉的概述
本节课主要讲述了cs231n课程的背景和计算机视觉的历史,也主要介绍了目前很重要的一个计算机视觉数据集--IMAGENET. 更多内容参考我的AI学习之路 课程简介 这门课程是由stanford大学计 ...
- Android 和 iOS 实现录屏推流的方案整理
一.录屏推流实现的步骤 1. 采集数据 主要是采集屏幕获得视频数据,采集麦克风获得音频数据,如果可以实现的话,我们还可以采集一些应用内置的音频数据. 2. 数据格式转换 主要是将获取到的视频和音频转换 ...
- Javascript高级编程学习笔记(9)—— 执行环境
今天主要讲一下,JS底层的一些东西,这些东西不太好举例(应该是我水平不够) 望大家多多海涵,比心心 执行环境 执行环境(执行上下文,全文使用执行环境 )是JS中最为重要的一个概念,执行环境决定了,变量 ...
- Nginx + Tomcat 在 Windows7 上搭建负载均衡集群
一.安装Tomcat和Nginx 首先安装两个apache-tomcat-8.0.41,下载地址:http://tomcat.apache.org 并安装一个nginx-1.13.0,下载地址http ...
- 金三银四季来了!Java 面试题大放送,能答对70%就去BATJTMD试试~
摘要: 2019,相对往年我们会发现今年猎头电话少了,大部分企业年终奖缩水,加薪幅度也不如往年,选择好offer就要趁早,现在开始准备吧,刷一波Java面试题,能回答70%就去BATJTMD大胆试试~ ...
- odoo开发笔记 -- 升级模块 提示外部ID找不到
可能的原因: 排查顺序: 1.id在视图中的加载顺序问题. 可能是:__manifest__.py文件,view文件先后加载顺序有问题:也可能是:xml 视图文件中,被引用的id出现在了引用id的下方 ...