Node.js連接數(shù)據(jù)庫實現(xiàn)過程詳解
創(chuàng)建數(shù)據(jù)庫
在前面的數(shù)據(jù)庫入門中我們講解了常用的sql語法以及實戰(zhàn),接下來我們來介紹一下如何在nodejs中使用數(shù)據(jù)庫
在前面的文章中我們有手把手使用docker創(chuàng)建數(shù)據(jù)庫,這里就直接沿用之前創(chuàng)建的數(shù)據(jù)庫
首先啟動docker,把之前的mysql容器運行起來
然后登入mysql客戶端查看一下現(xiàn)有的數(shù)據(jù)庫,以及user表
mysql
在前面我們已經(jīng)使用mysql自帶的客戶端連接數(shù)據(jù)庫進行一些操作, 到了node.js中我們可以用mysql這個npm包來連接mysql數(shù)據(jù)庫,這個包也同樣實現(xiàn)了mysql協(xié)議
首先安裝一下依賴,
pnpm install mysql
按照文檔配置好連接數(shù)據(jù)庫的參數(shù)
const mysql = require('mysql'); const connection = mysql.createConnection({ host: '127.0.0.1', user: 'root', password: 'password', database: 'jym', port: '2333', }); connection.connect(); connection.query('SELECT * FROM Users', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); connection.end();
運行之后出現(xiàn)了下面這個錯誤,似乎是mysql這個npm包不支持mysql8導致的,具體可以查看這個issue
'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
沒辦法,只能換一個npm包試試看了
pnpm uninstall mysql pnpm install mysql2
mysql2的語法和mysql那個基本一樣
// get the client const mysql = require('mysql2'); // create the connection to database const connection = mysql.createConnection({ host: 'localhost', user: 'root', database: 'jym', password: 'password' }); connection.connect(); connection.query('SELECT * FROM user', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', JSON.stringify(results)); }); connection.end();
運行結果如下,可以看到下面的數(shù)據(jù)和上方使用mysql客戶端查出來結果一致
The solution is: [{"name":"jym","age":"1"},{"name":"jym2","age":"2"},{"name":"jym3","age":"3"},{"name":"jym4","age":"4"}]
通過mysql2這個包,我們就可以用node.js連接數(shù)據(jù)庫了,可以使用一些基礎的API來直接操作mysql數(shù)據(jù)庫;比如上面的代碼中就執(zhí)行了'SELECT * FROM user'這個sql語句
除了使用這種基礎庫之外,我們還可以使用ORM(對象關系映射器)框架來連接數(shù)據(jù)庫,直接用OOP的方式來編寫模型和方法,ORM框架會幫助你生成對應的sql語句,這樣就可以把關注點放在業(yè)務上面,而不用編寫SQL語句。這可以讓你的代碼更加簡潔和可維護
目前在nodejs中常用的ORM有prisma,sequlize,typeorm等等,下回我們就來嘗試一下如何用ORM來連接數(shù)據(jù)庫
以上就是Node.js連接數(shù)據(jù)庫實現(xiàn)過程詳解的詳細內(nèi)容,更多關于Node.js連接數(shù)據(jù)庫的資料請關注腳本之家其它相關文章!
相關文章
使用cluster 將自己的Node服務器擴展為多線程服務器
nodejs在v0.6.x之后 增加了一個模塊 cluster 用于實現(xiàn)多進程,利用child_process模塊來創(chuàng)建和管理進程,增加程序在多核CPU機器上的性能表現(xiàn)。本文將介紹利用cluster模塊創(chuàng)建的多線程的問題。2014-11-11nodeJS與MySQL實現(xiàn)分頁數(shù)據(jù)以及倒序數(shù)據(jù)
這篇文章主要介紹了nodeJS與MySQL實現(xiàn)分頁數(shù)據(jù)以及倒序數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06Node.js開發(fā)之訪問Redis數(shù)據(jù)庫教程
這篇文章主要介紹了Node.js開發(fā)之訪問Redis數(shù)據(jù)庫教程,本文講解了安裝Redis的Node.js驅動、編寫測試程序以及npm遠程服務器連接十分緩慢的解決方法,需要的朋友可以參考下2015-01-01從零開始學習Node.js系列教程之設置HTTP頭的方法示例
這篇文章主要介紹了Node.js設置HTTP頭的方法,詳細分析了常見HTTP頭的功能、原理及相關設置操作技巧,需要的朋友可以參考下2017-04-04Node.js中MongoDB查詢數(shù)據(jù)的方法
在Node.js中,可以使用MongoDB驅動程序和Mongoose庫來進行MongoDB的查詢操作,本文就來介紹一下Node.js中MongoDB查詢數(shù)據(jù)的方法,感興趣的可以了解一下2023-12-12