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 制作的后台接口 部署到 腾讯云服务器

简单实现 nodejs koa2 mysql 增删改查 制作接口的更多相关文章

  1. nodejs+express+mysql 增删改查

    之前,一直使用的是nodejs+thinkjs来完成自己所需的项目需求,而对于nodejs中另外一中应用框架express却了解的少之又少,这两天就简单的了解了一下如何使用express来做一些数据库 ...

  2. nodejs+express+mysql 增删改查(二)

    1.最早一篇关于express框架简单的增删改查文章,http://www.cnblogs.com/zhengyeye/p/nodejs.html#3947308:意外走红博客园,无奈自己之前一直没有 ...

  3. Nodejs操作MySQL - 增删改查

    先安装npm模块项目 npm init 安装mysql npm install mysql --save Nodejs 连接msyql // 导入mysql const mysql = require ...

  4. 最简单的jsp+servlet的增删改查代码

    package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...

  5. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重

    MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充 #增加: #insert ...

  6. PHP MySql增删改查

    mysql_connect()连接数据库 mysql_select_db选择数据库 mysql_fetch_assoc()获取结果集 mysql_query()执行sql语句 实例如下: <?p ...

  7. mysql增删改查练习

    Mysql增删改查sql语句练习 关于数据库的一些操作: 进入mysql 命令行: mysql -uroot –p 查看所有数据库: show databases; 创建数据库: create dat ...

  8. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  9. Django学习之mysql增删改查

    上节介绍了如何使用命令行操作mysql增删改查,现在介绍如何使用python管理mysql 使用pip 下载完mysql后,mysql会以pymysql模块的形式存储在pycharm的包文件里.我们通 ...

随机推荐

  1. Python运行时报错 ModuleNotFoundError: No module named ‘exceptions‘

    踩的坑: 搜教程,很多文章都推荐使用:pip install python_docx‑0.8.10‑py2.py3‑none‑any.whl 但是依旧报错. 成功的示范: 使用命令:pip3 inst ...

  2. [001] - JavaSE面试题(一):面向对象

    第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [001] - JavaSE面试题(一):面向对象 第1问:面向对象和面向过程的区别? 面向过程 ...

  3. python + mysql 实现创建数据表

    import pymysql"""1.连接本地数据库2.建立游标3.创建表4.插入表数据.查询表数据.更新表数据.删除表数据"""def c ...

  4. Linux用户提权管理方案

    提权管理方案背景: 如果一个公司有10余个运维或网络安全人员,同时管理服务器,切换到管理员用户时(su - root),必须要有root管理员密码,如果其中一人修改过root密码,其他用户则登录不了, ...

  5. Windows环境安装kafka

    前言 注意事项: 需要有jdk,jdk8以上.配置好环境变量. 参看链接:https://blog.csdn.net/weixin_38004638/article/details/91893910 ...

  6. .NET同步原语Barrier简介

    Barrier(屏障)是一种自定义的同步原语(synchronization primitive),它解决了多个线程(参与者)在多个阶段之间的并发和协调问题. 1)多个参与者执行相同的几个阶段的操作 ...

  7. .NET Conf 2020大会将于2020年11月10日--- 11月12日举行 (UTC)时区

    .NET Conf 2020大会将于2020年11月10日--- 11月12日举行 (UTC)时区 开始时间 2020年11月10日 08:00 (PT) | 16:00 (UTC)| 24:00(北 ...

  8. Mybatis学习笔记导航

    Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师 ...

  9. RHCE_DAY02

    常用数值运算方式 $[] #四则运算(+ - * / % 取余数) $(()) #数值运算工具 expr #数值运算工具 let #数值运算工具 [root@localhost ~]# echo $[ ...

  10. Java-Stream流方法学习及总结

    1 前言 Stream是一个来自数据源的元素队列并支持聚合操作,其中具有以下特性: Stream只负责计算,不存储任何元素,元素是特定类型的对象,形成一个队列 数据源可以实集合.数组.I/O chan ...