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
查詢
新增
修改
刪除
接口制作完成 之后 ,要部署到騰訊雲服務器 可以參考我這篇文章: