簡單實現 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 制作的后台接口 部署到 騰訊雲服務器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM