koa2中对mysql简单封装实现增删改查的基本操作

koa2中对mysql简单封装实现增删改查的基本操作

创建连接池
import mysql from 'mysql';

import {
    MYSQL_CONFIG } from '../../config/index.js';

//配置文件
//export const MYSQL_CONFIG = {
   
//     host: '127.0.0.1',
//     port: '3306',
//     user: 'root',
//     password: 'root',
//     database: 'user', //数据库名
// }

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);
	                
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个koa配置swagger接口的示例,包含增删改查操作: ```javascript const Koa = require('koa'); const Router = require('koa-router'); const swagger = require('swagger2'); const { validate } = require('swagger2-koa'); const bodyparser = require('koa-bodyparser'); const app = new Koa(); const router = new Router(); const spec = swagger.loadDocumentSync('./swagger.yaml'); if (!swagger.validateDocument(spec)) { throw Error(`./swagger.yaml does not conform to the Swagger 2.0 schema`); } router.get('/users', async (ctx) => { // 查询用户列表 const users = await User.find(); ctx.status = 200; ctx.body = { users }; }); router.get('/users/:id', async (ctx) => { // 查询单个用户 const user = await User.findById(ctx.params.id); if (!user) { ctx.status = 404; ctx.body = { error: 'User not found' }; } else { ctx.status = 200; ctx.body = { user }; } }); router.post('/users', async (ctx) => { // 创建用户 const user = await User.create(ctx.request.body); ctx.status = 201; ctx.body = { user }; }); router.put('/users/:id', async (ctx) => { // 更新用户 const user = await User.findByIdAndUpdate(ctx.params.id, ctx.request.body, { new: true }); if (!user) { ctx.status = 404; ctx.body = { error: 'User not found' }; } else { ctx.status = 200; ctx.body = { user }; } }); router.delete('/users/:id', async (ctx) => { // 删除用户 const user = await User.findByIdAndDelete(ctx.params.id); if (!user) { ctx.status = 404; ctx.body = { error: 'User not found' }; } else { ctx.status = 204; } }); app.use(bodyparser()); app.use(validate(spec)); app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000, () => { console.log('Server running on http://localhost:3000'); }); ``` 以上示例,我们通过koa-router来定义了5个接口: - 查询用户列表:GET /users - 查询单个用户:GET /users/:id - 创建用户:POST /users - 更新用户:PUT /users/:id - 删除用户:DELETE /users/:id 在每个接口的处理函数,我们使用了Mongoose来进行数据库操作。返回的数据都被包装在了一个对象,以符合Swagger规范。 为了让这些接口符合Swagger规范,我们使用了swagger2-koa间件来校验请求和响应的数据格式。同时,我们也编写了一个swagger.yaml文件来对接口进行定义和描述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值