ホームページ >データベース >mysql チュートリアル >MySQL への Express 接続とデータベース接続プールの分析例

MySQL への Express 接続とデータベース接続プールの分析例

WBOY
WBOY転載
2023-06-03 17:58:041399ブラウズ

    MySQL への Express 接続

    準備作業

    Webstorm の新しいプロジェクトを開き、express を選択して Express を作成しますプロジェクト。

    MySQL への Express 接続とデータベース接続プールの分析例

    作成が成功すると、ページは次のようになります。

    MySQL への Express 接続とデータベース接続プールの分析例

    mysql に接続するにはデータベースを使用するには、mysql モジュールをインポートする必要があります。

    MySQL への Express 接続とデータベース接続プールの分析例

    構成ファイルの作成

    プロジェクト内に構成ファイルを作成し、その構成ファイル内にデータベースに接続するための configfigdb.js ファイルを作成し、次のように記述しますファイル内:

    var mysql = {
        host: "127.0.0.1",//这是数据库的地址
        user: "root",//需要用户的名字
        password: "root23",//用户密码 ,如果你没有密码,直接双引号就是
        database: "info",//数据库名字
        port:3306//数据库使用的端口号
    }
    module.exports = mysql;//用module.exports暴露出这个接口

    データベースを操作するためのインターフェースファイルを作成します

    const express = require('express');
    const router = express.Router();
    //导入MySQL 模块
    const mysql = require('mysql');
    //导入配置文件
    const db = require('../config/configdb');
    
    router.get('test',(req,res)=>{
        //创建数据库连接对象
        let conn = mysql.createConnection(db);
        //查询bookinfo中所有数据
        conn.query('select * from student',(err,results,fieldes)=>{
            //fieldes表示具体的字段
            if(err){
                throw err;
            }
            res.send(results);
        })
        //关闭数据库链接
        conn.end((err)=>{
            console.log(err);
    })
    module.exports = router;

    完了後、app.jsファイルに追加します:

    var dbRouter = require('./routes/option')
    app.use('/db',dbRouter);

    Postmanで次のようにテストします。

    MySQL への Express 接続とデータベース接続プールの分析例

    データベース接続プール テクノロジ

    データベース接続プールとは

    データベース接続プールは、次の場合に十分な数のデータベース接続オブジェクトを確立します。プログラムが開始され、これらの接続オブジェクトが接続されます。 プールが形成され、プログラムはプール内の接続オブジェクトを動的に申請、使用、および解放します。

    データベース接続プールの役割は何ですか?

    データベース接続プールは、データベース接続オブジェクトの割り当て、管理、解放を担当します。これにより、アプリケーションは既存のデータベース接続オブジェクトを再利用できます。再作成するのではなく。

    データベース接続プール テクノロジの例

    1. mysql モジュールをインポートします
    var mysql = require('mysql');
    2. データベース接続プールを作成します

    接続プールを作成します

    var pool = mysql.createPool(options);

    options パラメータは、多くの属性設定を含むオブジェクトです。このオブジェクトは、接続プール内の接続によって均一に使用されるさまざまなオプションを指定するために使用されます。

    //创建数据库连接池
    const pool = mysql.createPool({
        connectionLimit:20,
        host:'localhost',
        port:3306,
        user:'root',
        password:'123456',
        database:'info'
    })
    //导出数据库连接池对象
    module.exports = pool;

    connectionLimit: 接続プール内のリンクの最大数を指定するために使用され、デフォルトの属性値は 10 です。
    queueLimit: 使用されます。許可される保留中の接続の最大数を指定します。保留中の接続の数がこの値を超えると、すぐにエラーがスローされます。デフォルトの属性値は 0 です。これは、許可されない保留中の接続の最大数を表します。
    multipleStatements: 複数の SQL ステートメントの実行を許可するかどうか、デフォルト値は false です。
    host: データベース サーバーのアドレス
    user : 接続データベースのユーザー名
    password: データベースに接続するためのパスワード
    database: データベース名

    3.データベース リンク オブジェクト
    pool.getConnection((err, conn) => {
        if (err) {
            console.log(err)
        } else {
            let sql = 'select * from bookinfo';
            conn.query(sql, (err, results) => {
                if (err) {
                    console.log(err)
                } else {
                    res.send(results);
                    conn.release();
                }
            })
        }
    })
    4. データベース接続オブジェクトを解放します
    conn.release();

    完全なインスタンス

    const express = require('express');
    const pool = require('../config/dbmysql');
    
    const router = express.Router();
    /*
    * http://localhost:3000/dbmysql/books
    * */
    router.get('/books',(req,res)=>{
        //从数据库连接池中获取数据库连接对象
        pool.getConnection((err,conn)=>{
            if(err){
                console.log(err)
            }else {
                let sql = 'select * from bookinfo';
                conn.query(sql,(err,results)=>{
                    if (err) {
                        console.log(err)
                    }else {
                        res.send(results);
                        conn.release();
                    }
                })
            }
        })
    })
    module.exports = router;

    結果テスト:

    MySQL への Express 接続とデータベース接続プールの分析例

    以上がMySQL への Express 接続とデータベース接続プールの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。