<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] >[success] # Nodejs 鏈接 mysql 做成工具 上一章做了一個簡單的 **demo** ,實現了如何在 **nodejs** 中操作數據庫,但是還是沒法直接去用,**需要封裝成一個公共的方法來使用** ,接下來實現把它封裝成公共方法 1. 首先我們在我們的博客項目 **blog-1 文件夾中安裝 MySQL 插件** ,執行指令 `npm i mysql --registry=https://registry.npmmirror.com` 2. 然后我們 **在 src 目錄下創建 config 文件夾 跟 db.js 文件** ,**db.js** 這里 **根據不同環境返回不同的 mysql 配置** ,然后再創建一個 **db 文件夾,再在里面創建一個 mysql.js** ,專門用來寫 **mysql 封裝** 的 **公共方法** 的 **文件** **文件目錄結構:** ~~~ blog-1 // 項目文件夾 |__ bin // 可執行文件文件夾 | |__ www.js // 項目啟動入口文件 | |__ src // 放接口的文件夾 | |__ router // 路由(接口)文件夾 | | |__ blog.js // 【博客類型】有關的接口都寫在這里 | | |__ user.js // 【用戶類型】有關的接口都寫在這里 | | | |__ model // 【存放數據模型】的文件夾 | | |__ resModel.js // 【數據模型類】文件 | | | |__ controller // 【從數據庫取出數據,然后處理數據,返回給路由層】 | | |__ blog.js // 【博客類型】處理數據的文件 | | |__ user.js // 【用戶類型】處理數據的文件 | | | |__ config // 儲存配置的文件夾 | | |__ db.js // 根據不同環境返回不同的 mysql 配置 | | | |__ db // 有關數據儲存的文件夾 | |__ mysql.js // 封裝 mysql 公共方法的文件 | |__ app.js // 處理server業務邏輯的方法的文件 |__ package.json // 初始化項目文件 ~~~ **blog-1/src/config/db.js** ~~~ const env = process.env.NODE_ENV // 環境變量,這里的環境變量是在 package.json 中聲明的 // 配置 let MYSQL_CONF if(env === 'dev'){ // 本地開發環境配置 MYSQL_CONF = { host: 'localhost', // 域 user: 'root', // 賬號 password: 'Wjc13842859435.', // 密碼 port: '3306', // 端口號 database: 'myblog' // database: 'myblog' 相當于在 workbench 中執行的 use myblog 指令,意思是使用 myblog 數據庫 } } if(env === 'production'){ // 線上環境配置(暫時沒有服務器,先拿開發環境配置充當服務器配置,但是實際項目中這里一定是服務器線上的配置) MYSQL_CONF = { host: 'localhost', // 域 user: 'root', // 賬號 password: 'Wjc13842859435.', // 密碼 port: '3306', // 端口號 database: 'myblog' // database: 'myblog' 相當于在 workbench 中執行的 use myblog 指令,意思是使用 myblog 數據庫 } } module.exports = { MYSQL_CONF } ~~~ **blog-1/src/db/mysql.js** ~~~ // 引入 mysql const mysql = require('mysql') // 引入配置(根據不同環境返回不同配置) const { MYSQL_CONF } = require('../config/db') // 創建鏈接對象 const con = mysql.createConnection(MYSQL_CONF) // 開始連接 con.connect() // 統一執行 sql 的函數 function exec(sql){ const promise = new Promise((resolve, reject) => { con.query(sql, (err, result) => { if(err) { // 失敗 reject(err) return } resolve(result) // 成功 }) }) return promise } // 關閉連接 // con.end() module.exports = { exec } ~~~ 這里的 **關閉連接** 為什么注釋上呢?因為我們這個 **創建鏈接對象** 就創建一次,每次使用的是 **exec 方法** ,也就是一個 **單例模式** ,無需每次都創建,所以就不需要 **關閉連接**,如果關閉了連接,后續就查不了了,如果每次都連接數據庫就需要關閉,像下圖這種,連接了好多次都沒有關閉, ![](https://img.kancloud.cn/33/94/33949b813dbc38ba12f17759612ca533_149x362.png) 過一會就會提示打開連接超時了: ![](https://img.kancloud.cn/fa/db/fadbb51d0dabed6b40d71d1a35d2673a_554x103.png) 當你使用 **MySQL 數據庫** ,在 **訪問結束后** , **不關閉連接** 就相當于 **停車后不駕車離開停車場(Mysql),如果沒有其他車輛退出該停車場,停車場就會滿,并且不允許新的車輛進入**。同樣地,**如果沒有關閉數據庫連接,并且超出了最大連接數,MySQL 就會拒絕新的連接并導致程序崩潰** 。所以,及時關閉數據庫連接是非常重要的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看