zoukankan      html  css  js  c++  java
  • express链接mysql, 用数据库连接池管理链接

    1、在API的开发当中,数据库的处理显得尤为重要,express 工程 链接mysql数据库有很好的模板可以借鉴。

    1.1 创建数据库链接

    新建一个DB目录,在DB目录下新建文件 db.js

    内容如下

    /**
     * Created by wjw on 2018/10/13.
     */
    //db.js
    // connect mySql
    var mysql = require('mysql');
    var pool = mysql.createPool({
        connectionLimit: 10,
        host: 'localhost',
        user: 'root',
        password: '0',
        database: 'testForApi'
    
    });
    
    function  query(sql, values, callback) {
        console.log("db pool");
        pool.getConnection(function (err, connection) {
            if(err) throw err;
            console.log("get connection ");
            //Use the connection
            connection.query(sql, values,function (err, results, fields) {
                console.log(JSON.stringify(results));
                //每次查询都会 回调
                callback(err, results);
                //只是释放链接,在缓冲池了,没有被销毁
                connection.release();
                if(err) throw error;
    
            });
    
        });
    }
    
    exports.query = query;

    1.2新建一个关于 user 对象的sql查询管理类 userSql.js 它会被userRouter.js, api.js 等相关路由模块所引用,方便扩展.这里以 api.js 为例:

    var UserSql = {
        insert : 'INSERT INTO User(id, userName, password) VALUES(?,?,?) ',
        query : 'SELECT * FROM user ',
        getUserById: 'SELECT * FROM user WHERE uid = ? '
    };
    
    module.exports = UserSql;

    1.3在 API.js 中写一个获取 数据库中所有user 表信息的 API。

    api.js 在routers 目录下。和 index.js ,user.js同级

    var express = require('express');
    var router = express.Router();
    
    var db = require('../db/db'); //引入db
    var userSql = require('../db/userSql');
    
    router.get("/getAllUsers", function (req, res, next) {
        var results = {};
        db.query(userSql.query, [], function (err, rows) {
            results = rows;
            console.log("results: " + results.str);
            res.send(results);
        });
    });
    
    module.exports = router;

    2、在浏览器中输入 http://localhost:3000/api/getAllUsers,可以读取数据库信息,这里只是简单的把 user表信息全部读取。

  • 相关阅读:
    科技巨头争抢的“超级账本”,到底是个什么组织?
    区块链结合教育,将给教育行业带来哪些变革?
    国家区块链战略开启,教育行业应对几何?
    区块链如何改变教育
    区块链技术在教育领域的应用模式与现实挑战
    知乎-区块链技术运用于教育有多少种可能?
    区块链+教育,让教育行业充满希望
    教育区块链应用案例【2019】
    区块链在教育行业的落地应用现状介绍
    PowerShell 搜索文件编码格式
  • 原文地址:https://www.cnblogs.com/wjw-blog/p/9786660.html
Copyright © 2011-2022 走看看