Maison > base de données > tutoriel mysql > le corps du texte

Exemple d'analyse de la connexion Express à MySQL et au pool de connexions à la base de données

WBOY
Libérer: 2023-06-03 17:58:04
avant
1361 Les gens l'ont consulté

    Express se connecte à MySQL

    Préparation

    Ouvrez un nouveau projet Webstorm et sélectionnez Express pour créer un projet express.

    Exemple danalyse de la connexion Express à MySQL et au pool de connexions à la base de données

    Après une création réussie, la page est la suivante :

    Exemple danalyse de la connexion Express à MySQL et au pool de connexions à la base de données

    Afin de vous connecter à la base de données mysql, vous devez importer le module mysql.

    Exemple danalyse de la connexion Express à MySQL et au pool de connexions à la base de données

    Créez le fichier de configuration

    Créez le fichier de configuration dans le projet, créez le fichier congfigdb.js dans le fichier de configuration pour vous connecter à la base de données, écrivez dans le fichier :

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

    Créez le fichier d'interface pour faire fonctionner le database

    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;
    Copier après la connexion

    Complete Ajoutez ensuite le fichier app.js :

    var dbRouter = require('./routes/option')
    app.use('/db',dbRouter);
    Copier après la connexion

    Testez dans Postman comme suit :

    Exemple danalyse de la connexion Express à MySQL et au pool de connexions à la base de données

    Technologie du pool de connexions à la base de données

    Qu'est-ce qu'un pool de connexions à la base de données

    Le pool de connexions à la base de données sert à établir un un nombre suffisant d'objets de connexion à la base de données au démarrage du programme et forment un pool de ces objets de connexion, et le programme demande, utilise et libère dynamiquement les objets de connexion dans le pool.

    Quel est le rôle du pool de connexions à la base de données ?

    Le pool de connexions à la base de données est responsable de l'allocation, de la gestion et de la libération des objets de connexion à la base de données. Il permet à une application de réutiliser un objet de connexion à une base de données existant. plutôt que d'en recréer un.

    Exemple de technologie de pool de connexion à la base de données

    1. Importez le module mysql
    var mysql = require('mysql');
    Copier après la connexion
    2 Créez un pool de connexion à la base de données

    Créez un pool de connexion

    var pool = mysql.createPool(options);
    Copier après la connexion

    options Le paramètre est un objet et il existe de nombreuses configurations d'attributs. dans l'objet. Il est utilisé pour spécifier diverses options pour une utilisation unifiée des connexions dans le pool de connexions.

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

    connectionLimit:用于指定连接池中最大的链接数,默认属性值为10.
    queueLimit:用于指定允许挂起的最大连接数,如果挂起的连接数超过该数值,就会立即抛出一个错误,默认属性值为0.代表不允许被挂起的最大连接数。
    multipleStatements :是否允许执行多条sql语句,默认值为false
    host:数据库服务器的地址
    user:连接数据库的用户名
    password:连接数据库的密码
    database : nom de la base de données

    3. Obtenez l'objet de lien de base de données
    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();
                }
            })
        }
    })
    Copier après la connexion
    4. Libérez l'objet de connexion à la base de données
    conn.release();
    Copier après la connexion

    Instance complète

    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;
    Copier après la connexion

    Test de résultat :

    Exemple danalyse de la connexion Express à MySQL et au pool de connexions à la base de données

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal