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表信息全部讀取。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM