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 的简单增删改查的更多相关文章

  1. ado.net的简单数据库操作(三)——简单增删改查的实际应用

    果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...

  2. Redis:五种数据类型的简单增删改查

    Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...

  3. node 后台使用增删改查(4)

    无论node还是java增删改查都是一样的原理,变得是配合框架使用时候有简便方法而已. 这里我接着上一篇开始讲,使用同一个数据库(数据库创建)这里必须创建了数据库 优化:为了维护方便这里我们把sql语 ...

  4. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  5. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  6. 04-springboot整合elasticsearch初识-简单增删改查及复杂排序,分页,聚合操作

        前面大概了解了一下elasticsearch的数据存储和数据的查询.现在学习一下,es的复杂操作.     官网相关文档地址:https://www.elastic.co/guide/en/e ...

  7. linq的简单增删改查

    Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好 ...

  8. Android_ADB 常用 shell命令 和 sqlite3 简单增删改查

    今天学习了一个ADB的常用命令.接下来简单使用几个常用ADB shell 命令. 首先我们得明白什么是adb.exe ADB -Android Debug Bridge, 是 Android sdk ...

  9. MyBatis之二:简单增删改查

    这一篇在上一篇的基础上简单讲解如何进行增删改查操作. 一.在mybatis的配置文件conf.xml中注册xml与注解映射 <!-- 注册映射文件 --> <mappers> ...

随机推荐

  1. MyBatis 源码分析 - 内置数据源

    1.简介 本篇文章将向大家介绍 MyBatis 内置数据源的实现逻辑.搞懂这些数据源的实现,可使大家对数据源有更深入的认识.同时在配置这些数据源时,也会更清楚每种属性的意义和用途.因此,如果大家想知其 ...

  2. mybatis 控制台打印sql语句

    其实很简单,打印SQL只需要加一个setting就可以了.亲测可用. mybatis-config.xml: <settings>        <setting name=&quo ...

  3. 用react + redux + router写一个todo

    概述 最近学习redux,打算用redux + router写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 注意: 我只实现了Footer组件的router,其它组件的实现方法是类 ...

  4. 理解Docker

    Docker Image OS分为 内核(kernel) 和 用户 空间,kernel 启动后,会挂载root文件系统提供用户空间. Docker Image 就相当于一个 root文件系统.是一个特 ...

  5. 正确使用AES对称加密

    正确使用AES对称加密 经常我看到项目中有人使用了对称加密算法,用来加密客户或项目传输中的部分数据.但我注意到开发 人员由于不熟悉原理,或者简单复制网上的代码示例,有导致代码存在安全风险. 我经常遇到 ...

  6. 音频科普---oggs

    做为一个做音频的人,很多基础的东西还是要牢记的.最近一个客户用ogg格式的音频,感觉这个很陌生,就翻了这方面的 资料.好比是认识一个大牛,只有在你有一个困扰你很久的困难问题被他瞬间解决的时候,才知道什 ...

  7. SOA和微服务架构的区别

    微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui ...

  8. firefox设置每次访问时检查缓存

    1.在firefox的地址栏上输入about:config回车2.找到browser.cache.check_doc_frequency选项,双击将3改成1保存即可. 选项每个值都是什么含义的.请看下 ...

  9. 一筐鸡蛋的lcm

    问题 一筐鸡蛋,一个一个取正好取完,两个两个取剩下一个,三个三个取正好取完,四个四个取剩下一个,五个五个取少一个,六个六个取剩下三个,七个七个取正好取完,八个八个取剩下一个,九个九个取正好取完,共多少 ...

  10. MD5加密之加密字符串

    public static String encode(String str) { String encodeString = ""; try { MessageDigest md ...