>  기사  >  데이터 베이스  >  MySQL 및 데이터베이스 연결 풀에 대한 Express 연결 분석 예

MySQL 및 데이터베이스 연결 풀에 대한 Express 연결 분석 예

WBOY
WBOY앞으로
2023-06-03 17:58:041307검색

    Express는 MySQL

    Preparation

    에 연결합니다. webstorm 새 프로젝트를 열고 express를 선택하여 Express 프로젝트를 만듭니다.

    MySQL 및 데이터베이스 연결 풀에 대한 Express 연결 분석 예

    성공적으로 생성된 후 페이지는 다음과 같습니다.

    MySQL 및 데이터베이스 연결 풀에 대한 Express 연결 분석 예

    mysql 데이터베이스에 연결하려면 mysql 모듈을 가져와야 합니다.

    MySQL 및 데이터베이스 연결 풀에 대한 Express 연결 분석 예

    구성 파일 생성

    프로젝트에서 구성 파일을 생성하고 구성 파일에 congfigdb.js 파일을 생성하여 데이터베이스에 연결하고 파일에 다음을 작성합니다.

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

    운영을 위한 인터페이스 파일 생성 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;

    Complete 그런 다음 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);

    옵션 매개 변수는 개체이며 많은 속성 구성이 있습니다. 연결 풀에서 연결을 통합적으로 사용하기 위한 다양한 옵션을 지정하는 데 사용됩니다.

    //创建数据库连接池
    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제