搜尋
首頁web前端前端問答nodejs如何安裝mysql包

nodejs如何安裝mysql包

Sep 16, 2021 am 11:38 AM
mysqlnodejs

nodejs中可以利用npm工具來安裝mysql包,具體安裝方法:1、開啟終端,進入指定專案目錄;2、執行「npm install mysql --save」指令,等待下載並安裝完成即可。

nodejs如何安裝mysql包

本教學操作環境:windows7系統、nodejs 14.15.4版,DELL G3電腦。

nodejs安裝mysql套件、連接MySQL的方法

#首先要安裝nodejs和npm。

寫了一個簡單的小例子,整個小例子使用了express框架,node_modules裡面已經下載好了express和ejs模板。先來看看目錄:

nodejs如何安裝mysql包

server.js   =》  node.js的伺服器啟動檔案

db.js   =》  資料庫操作檔

views  =》  存放範本文件,也就是所有的頁面存放的地方

public =》  存放所有靜態資源的地方,例如css js images之類的

#連接MySQL的方法:

第一步,需要安裝一個叫做MySQL的npm包,這個包是官方提供的,穩定性是可以保證的,當然,還有其他的npm包,這裡我們只使用mysql包。安裝的方法很簡單了,輸入指令npm install mysql --save,等待下載完成.

##看到這個樣子,那就是安裝成功了。

然後我們打開db.js文件,在裡面寫入資料庫中操作必須的一些程式碼,看下圖:

##程式碼很少,意思也很明顯,第一步需要引入以mysql包,然後我們創建一個空對象,並且給他賦值一個叫query的方法,這個方法接受兩個參數,第一個參數是你查詢數據時候的sql語句,第二個參數是取得查詢結果的回呼函數。

再看函數內部,第一塊程式碼是用來設定操作mysql的配置的:

#host表示mysql安裝的位址,因為我是本地的資料庫,所以直接使用localhost

    user表示mysql的用戶名
  • ##password表示mysql的密碼
  • database表示你要選擇操作的具體的函式庫的名字
  • port表示端口,可不填,預設就是3306
  • mysql.createConnection的回傳值connection是我們接下來操作mysql的一個具體的對象,所有的操作方法都是基於他的。

呼叫connection的connect方法判斷連線是否成功,如果失敗,則把錯誤訊息印出來,並且停止運作。

呼叫connection的query方法來直接向資料庫傳送sql語句,並且把用回呼函數傳回結果,其中回呼函數中有三個參數,第一參數是錯誤對象,如果操作失敗,則會停止並列印錯誤訊息,第二參數是具體的返回的結果,正常情況下是一個數組,裡麵包含很多json,第三個參數也是一個數組,裡面包含著最每個資料的解釋,例如目前資料屬於哪個函式庫,那張表等等。我們使用最多的自然是第二個參數了

 

# 當資料庫作業結束以後關閉連線

 

整個過程很簡單,只是其中有兩個問題,第一個是資料庫連線遺失的問題,不知道有沒有人碰到過,第一次造訪首頁的時候,連接資料庫正常,第二次訪問首頁,資料庫連線不上了,會報錯說連線遺失。這個原因是我們每操作完一次資料庫就關閉了資料庫連接,再次訪問的時候就找不到連接了,但是連接又不能不關閉,有人可能覺得奇怪,每次訪問首頁時候都會訪問db.js文件,不是每次都會有新連接產生嗎?是的,只是我最開始的時候產生連接的那段程式碼並沒有放到db.query的函數中,而是放在外面,如下圖:

這樣就導致連線只產生一次,關閉了以後,第二採訪就無法連線。把它放在函數裡面以後,使用exports對外暴露介面。每次造訪首頁,都會重新走一遍創建連接的過程,每次都能拿到一個新的連接,這樣訪問就沒有問題了。其實專案中可以直接使用連接池。省去了很多麻煩。

第二個問題是我們在server.js中引入了db.js

此時大家可能看到了,mysql.query有兩個參數,第一個是sql,第二個是回呼函數,回呼函數有一個result的參數,其實他就是資料庫查詢出來的結果。有人會說為什麼不直接在db.js中使用return,把查詢結果回傳,搞什麼回呼!

其實這裡就是node.js的非同步造成的一些問題了,如果我們把server.js中的程式碼改成下圖

因為我們看到了mysql套件的query方法是非同步操作,這就導致下面的res.render()方法不會等待他把結果查詢出來以後再執行,往往是結果還沒出來,就已經開始渲染頁面,但是資料又沒有得到,所以就會報錯了。因此只好傳送了一個回呼函數進去,在mysql的query方法結束以後,把結果透過參數傳入到我們自己寫的回呼函數中,這樣我們就能在回調函數裡得到結果了。然後再執行渲染。當然處理這個問題還可以引入第三方包 async來解決非同步問題,具體看個人了。

【相關推薦:《windows環境下怎麼安裝nodejs? 》】

以上是nodejs如何安裝mysql包的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML和React的集成:實用指南HTML和React的集成:實用指南Apr 21, 2025 am 12:16 AM

HTML與React可以通過JSX無縫整合,構建高效的用戶界面。 1)使用JSX嵌入HTML元素,2)利用虛擬DOM優化渲染性能,3)通過組件化管理和渲染HTML結構。這種整合方式不僅直觀,還能提升應用性能。

React和HTML:渲染數據和處理事件React和HTML:渲染數據和處理事件Apr 20, 2025 am 12:21 AM

React通過state和props高效渲染數據,並通過合成事件系統處理用戶事件。 1)使用useState管理狀態,如計數器示例。 2)事件處理通過在JSX中添加函數實現,如按鈕點擊。 3)渲染列表需使用key屬性,如TodoList組件。 4)表單處理需使用useState和e.preventDefault(),如Form組件。

後端連接:反應如何與服務器互動後端連接:反應如何與服務器互動Apr 20, 2025 am 12:19 AM

React通過HTTP請求與服務器交互,實現數據的獲取、發送、更新和刪除。 1)用戶操作觸發事件,2)發起HTTP請求,3)處理服務器響應,4)更新組件狀態並重新渲染。

反應:專注於用戶界面(前端)反應:專注於用戶界面(前端)Apr 20, 2025 am 12:18 AM

React是一種用於構建用戶界面的JavaScript庫,通過組件化開發和虛擬DOM提高效率。 1.組件與JSX:使用JSX語法定義組件,增強代碼直觀性和質量。 2.虛擬DOM與渲染:通過虛擬DOM和diff算法優化渲染性能。 3.狀態管理與Hooks:Hooks如useState和useEffect簡化狀態管理和副作用處理。 4.使用示例:從基本表單到高級的全局狀態管理,使用ContextAPI。 5.常見錯誤與調試:避免狀態管理不當和組件更新問題,使用ReactDevTools調試。 6.性能優化與最佳

React的角色:前端還是後端?澄清區別React的角色:前端還是後端?澄清區別Apr 20, 2025 am 12:15 AM

reactisafrontendlibrary,focusedonBuildingUserInterfaces.itmanagesuistateandupdatesefficefited avelyuseVirusity diftualdom,and internactSwithBackendServIcesViaApisforDatahandling,butdoesnotprocessorcorsorsorstoredordordordoredairself。

在HTML中進行反應:構建交互式用戶界面在HTML中進行反應:構建交互式用戶界面Apr 20, 2025 am 12:05 AM

React可以嵌入到HTML中來增強或完全重寫傳統的HTML頁面。 1)使用React的基本步驟包括在HTML中添加一個根div,並通過ReactDOM.render()渲染React組件。 2)更高級的應用包括使用useState管理狀態和實現複雜的UI交互,如計數器和待辦事項列表。 3)優化和最佳實踐包括代碼分割、惰性加載和使用React.memo和useMemo來提高性能。通過這些方法,開發者可以利用React的強大功能來構建動態和響應迅速的用戶界面。

反應:現代前端發展基礎反應:現代前端發展基礎Apr 19, 2025 am 12:23 AM

React是構建現代前端應用的JavaScript庫。 1.它採用組件化和虛擬DOM優化性能。 2.組件使用JSX定義,狀態和屬性管理數據。 3.Hooks簡化生命週期管理。 4.使用ContextAPI管理全局狀態。 5.常見錯誤需調試狀態更新和生命週期。 6.優化技巧包括Memoization、代碼拆分和虛擬滾動。

React的未來:Web開發的趨勢和創新React的未來:Web開發的趨勢和創新Apr 19, 2025 am 12:22 AM

React的未來將專注於組件化開發的極致、性能優化和與其他技術棧的深度集成。 1)React將進一步簡化組件的創建和管理,推動組件化開發的極致。 2)性能優化將成為重點,特別是在大型應用中的表現。 3)React將與GraphQL和TypeScript等技術深度集成,提升開發體驗。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。