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

  • 相关阅读:
    JAVA爬虫实践(实践三:爬虫框架webMagic和csdnBlog爬虫)
    JAVA爬虫实践(实践一:知乎)
    JAVA爬虫实践(实践二:博客园)
    SpringMVC框架学习笔记(5)——数据处理
    SpringMVC框架学习笔记——各种异常、报错解决
    SpringMVC框架学习笔记(1)——HelloWorld
    angularjs springMVC 交互
    存储过程存放数据方式
    存储过程总结
    cssie7.0兼容
  • 原文地址:https://www.cnblogs.com/wjw-blog/p/9786660.html
Copyright © 2020-2023  润新知