前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Koa封装MySQL数据库

Koa封装MySQL数据库

作者头像
越陌度阡
发布2020-11-26 14:52:34
1.1K0
发布2020-11-26 14:52:34
举报

以下提供一个Node.js封装的MySQL数据库的方法,欢迎各位码农复制粘贴!

首先是封装的数据库文件config.js

代码语言:javascript
复制
var mysql = require('mysql');

// 建立链接
function __connection() {
    var connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '12345678',
        database: 'myData'
    });
    connection.connect();
    return connection;
};

exports.query = function (sql, parmas = null) {
    // 获取数据库链接对象
    var connection = __connection();
    return new Promise(function (reject, resolve) {
        // 执行SQL语句
        connection.query(sql, parmas, function (error, results, fields) {
            if (error) throw error;
            reject(results);
        });
        // 关闭链接
        connection.end();
    })
}

以下是基于Koa应用实例。

代码语言:javascript
复制
const Koa = require('koa');
const router = require('koa-router')();
const views = require('koa-views');
const bodyParser = require('koa-bodyparser');
const static = require('koa-static');
const DB = require('./module/config.js');


var app = new Koa();
// 配置模板引擎
app.use(views('views', {
    extension: 'ejs'
}));
// 配置静态资源访问路径
app.use(static(__dirname + '/public'));
// 配置获取POST提交数据的请求
app.use(bodyParser());

// 执行查询操作
router.get('/', async (ctx) => {
    var sql = 'select * from user';
    var result = await DB.query(sql);
    await ctx.render('index', {
        list: result
    })
});
// 增加操作
router.get('/add', async (ctx) => {
    // 模拟获取前台的数据
    var username = '张三';
    var password = '123456';

    var sql = 'insert into user (username,password) value (?,?)';
    var params = [username, password];
    var result = await DB.query(sql, params);
    // 实际开发中需要判断后给出响应
    ctx.body = '增加成功';

});
// 编辑操作
router.get('/edit', async (ctx) => {
    // 模拟获取前台的数据
    var username = '李四';
    var password = '123456';

    var sql = 'update user set username=?,password=? where id=3';
    var result = await DB.query(sql, [username, password]);

    // 实际开发中需要判断后给出响应
    ctx.body = '修改成功';
});

// 删除操作
router.get('/delete', async (ctx) => {
    var sql = 'delete from user where id=8';
    var result = await DB.query(sql);
    // 实际开发中需要判断后给出响应
    ctx.body = '删除成功';
});


app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档