• 简单实现 nodejs koa2 mysql 增删改查 制作接口


    1.首先 在电脑上安装 nodejs (此处略过)

    2.全局安装 koa2 (这里使用的淘宝镜像cnpm,有兴趣的同学可以自行搜索下)

    cnpm install koa-generator -g

    3.创建项目

    koa2 code(code 是项目名)

    4.(cd code) 然后 安装依赖

    cnpm install

    5.(cd code  进入code目录 ) 然后 启动项目

    cnpm start code   该操作修改代码后,需重启生效
    
    cnpm run dev       该操作修改代码后,刷新浏览器生效

    6. node 连接数据库

    cnpm install mysql --save

    7.1 开始增删改查     目录结构

    db.js  是数据库的配置
    代码如下:
    
    //数据库配置文件
    const MYSQL_CONFIG = {
      host     : '你的数据库地址', // 可以是本地地址,也可以设置成远程地址
      user     : '你的数据库账户', // 我这边是mysql,一般都是root
      password : '你的数据库密码',
      database : '你连接的数据库名'
    };
    module.exports = MYSQL_CONFIG;
    dbSQL.js  里面是sql语句
    代码如下:
    
    const QUERY_SQL = `select * from t_user`;
    const INSERT_SQL = `INSERT INTO t_user SET ?`;
    const UPDATE_SQL = `UPDATE t_user SET username=? WHERE id=?`;
    const DELETE_SQL = `DELETE FROM t_user WHERE id=?`;
    
    module.exports = { QUERY_SQL, INSERT_SQL, UPDATE_SQL, DELETE_SQL };
    dbPool.js  里面是创建连接池,并编写查询方法
    代码如下:
    
    const mysql = require('mysql')
    const MYSQL_CONFIG = require('./db');
    
    let pools = {};
    
    // 创建连接池
    //判断是否存在连接池不用每次都创建
    if (!pools.hasOwnProperty('data')) {
        pools['data'] = mysql.createPool(MYSQL_CONFIG);
    }
    
    // 查询  
    // sql 是sql语句
    // values 是sql语句中的具体值
    // sql values 可查看官方文档 https://github.com/mysqljs/mysql#performing-queries
    const query = (sql, values) => {
        return new Promise((resolve, reject) => {
                //初始化连接池
                pools['data'].getConnection((err, connection) => {
                        if (err) {
                            console.log(err,'数据库连接失败');
                        }
                        else{
                            console.log('数据库连接成功');
                            //操作数据库
                            connection.query(sql, values, (err, results) => {
                                    if (err) {
                                        reject(err);
                                    } else {
                                        connection.release();
                                        resolve({
                                            status: 200,
                                            results
                                        });
                                    }
                            });
                        }
                })
        });
    }
    
    module.exports = { query };
    dataOperation.js   是数据库的增删改查操作,目前是放在router里面的,最好是分离出来,方便维护
    代码如下:
    
    const router = require('koa-router')()
    const { query } = require('./../config/dbPool');
    const { QUERY_SQL, INSERT_SQL, UPDATE_SQL, DELETE_SQL } = require('./../config/dbSQL');
    
    //查询
    // 测试时可简单创建 string: name, number: id, 自增主键id
    router.get('/search', async ctx => {
        const data = await query(QUERY_SQL);
        ctx.body = {
            data,
        };
    });
    
    // 插入
    router.post('/save', async ctx => {
        const res = ctx.request.body;
        const { username = '', realname = '', password = '' } = res;
        if(username && realname) {
            const queryData = {
                username,
          realname,
          password,
            };
            const data = await query(INSERT_SQL, queryData);
            if(data && data.status && data.status === 200) {
                ctx.body = {
                    status: 200,
                    msg: "操作成功",
                };
            } else {
                ctx.body = data;
            }
        }
    });
    
    //更新
    router.post('/update', async ctx => {
        const res = ctx.request.body;
        const { username = '', id= 1 } = res;
        if(username && id) {
            const queryData = [username, id];
            const data = await query(UPDATE_SQL, queryData);
            if(data && data.status && data.status === 200) {
                ctx.body = {
                    status: 200,
                    msg: "操作成功",
                };
            } else {
                ctx.body = data;
            }
        }
    });
    
    //根据主键id 删除
    router.del('/delete', async ctx => {
        const res = ctx.request.body;
        const { id } = res;
        if(id) {
            const queryData = [id];
            const data = await query(DELETE_SQL, queryData);
            if(data && data.status && data.status === 200) {
                ctx.body = {
                    status: 200,
                    msg: "操作成功",
                };
            } else {
                ctx.body = data;
            }
        }
    });
    
    module.exports = router;

    接下来是测试接口  这里使用的是postman

    查询

     新增

    修改

    删除

     接口制作完成 之后 ,要部署到腾讯云服务器 可以参考我这篇文章:

    把 nodejs koa2 制作的后台接口 部署到 腾讯云服务器

  • 相关阅读:
    梯度下降(Gradient Descent)
    Positioning-Based Photo Retrieval
    NTU Long-Term Positioning Dataset
    Pycharm导入tabula模块包
    MySQL学习笔记20
    MySQL学习笔记17-19
    Android studio 报错AAPT2 error
    MySQL学习笔记13-16
    MySQL学习笔记 8-12
    机器学习十大算法
  • 原文地址:https://www.cnblogs.com/yingyigongzi/p/13925691.html
Copyright © 2020-2023  润新知