開啟webstorm新專案選擇express建立一個express專案。
建立成功後其頁面如下:
#為了連接mysql資料庫還需要匯入mysql模組。
在專案中建立config文件,在config檔中建立congfigdb.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中測試如下:
資料庫連接池是程式啟動時建立足夠數量的資料庫連接對象,並將這些連接對象組成一個池,由程式動態地對池中的連線物件進行申請、使用和釋放。
資料庫的連線池負責指派、管理和釋放資料庫連線物件的。它允許應用程式重複使用一個現有的資料庫的連接物件。而不是重新創建一個。
var mysql = require('mysql');
##建立連線池
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;
3、取得資料庫連結物件connectionLimit
:用於指定連線池中最大的連結數,預設屬性值為10.
queueLimit:用於指定允許掛起的最大連線數,如果掛起的連線數超過該數值,就會立即拋出錯誤,預設屬性值為0.代表不允許被掛起的最大連線數。
multipleStatements:是否允許執行多條sql語句,預設值為false
host:資料庫伺服器的位址
user:連接資料庫的使用者名稱
password:連接資料庫的密碼
database:資料庫名稱
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(); } }) } })
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;
結果測試:
##
以上是Express連接MySQL及資料庫連線池的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!