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

WBOY
リリース: 2023-06-03 17:58:04
転載
1366 人が閲覧しました

    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 までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート