亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node.js連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)過程詳解

 更新時(shí)間:2022年12月14日 09:15:00   作者:魚露  
這篇文章主要為大家介紹了Node.js連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

創(chuàng)建數(shù)據(jù)庫(kù)

在前面的數(shù)據(jù)庫(kù)入門中我們講解了常用的sql語法以及實(shí)戰(zhàn),接下來我們來介紹一下如何在nodejs中使用數(shù)據(jù)庫(kù)

在前面的文章中我們有手把手使用docker創(chuàng)建數(shù)據(jù)庫(kù),這里就直接沿用之前創(chuàng)建的數(shù)據(jù)庫(kù)

首先啟動(dòng)docker,把之前的mysql容器運(yùn)行起來

然后登入mysql客戶端查看一下現(xiàn)有的數(shù)據(jù)庫(kù),以及user表

mysql

在前面我們已經(jīng)使用mysql自帶的客戶端連接數(shù)據(jù)庫(kù)進(jìn)行一些操作, 到了node.js中我們可以用mysql這個(gè)npm包來連接mysql數(shù)據(jù)庫(kù),這個(gè)包也同樣實(shí)現(xiàn)了mysql協(xié)議

首先安裝一下依賴,

pnpm install mysql

按照文檔配置好連接數(shù)據(jù)庫(kù)的參數(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();

運(yùn)行之后出現(xiàn)了下面這個(gè)錯(cuò)誤,似乎是mysql這個(gè)npm包不支持mysql8導(dǎo)致的,具體可以查看這個(gè)issue

'Client does not support authentication protocol requested by server; consider upgrading MySQL client',

沒辦法,只能換一個(gè)npm包試試看了

pnpm uninstall mysql
pnpm install mysql2

mysql2的語法和mysql那個(gè)基本一樣

// 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();

運(yùn)行結(jié)果如下,可以看到下面的數(shù)據(jù)和上方使用mysql客戶端查出來結(jié)果一致

The solution is:  [{"name":"jym","age":"1"},{"name":"jym2","age":"2"},{"name":"jym3","age":"3"},{"name":"jym4","age":"4"}]

通過mysql2這個(gè)包,我們就可以用node.js連接數(shù)據(jù)庫(kù)了,可以使用一些基礎(chǔ)的API來直接操作mysql數(shù)據(jù)庫(kù);比如上面的代碼中就執(zhí)行了'SELECT * FROM user'這個(gè)sql語句

除了使用這種基礎(chǔ)庫(kù)之外,我們還可以使用ORM(對(duì)象關(guān)系映射器)框架來連接數(shù)據(jù)庫(kù),直接用OOP的方式來編寫模型和方法,ORM框架會(huì)幫助你生成對(duì)應(yīng)的sql語句,這樣就可以把關(guān)注點(diǎn)放在業(yè)務(wù)上面,而不用編寫SQL語句。這可以讓你的代碼更加簡(jiǎn)潔和可維護(hù)

目前在nodejs中常用的ORM有prisma,sequlize,typeorm等等,下回我們就來嘗試一下如何用ORM來連接數(shù)據(jù)庫(kù)

以上就是Node.js連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)過程詳解的詳細(xì)內(nèi)容,更多關(guān)于Node.js連接數(shù)據(jù)庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • nodejs之請(qǐng)求路由概述

    nodejs之請(qǐng)求路由概述

    這篇文章主要介紹了nodejs的請(qǐng)求路由概述,需要的朋友可以參考下
    2014-07-07
  • 使用cluster 將自己的Node服務(wù)器擴(kuò)展為多線程服務(wù)器

    使用cluster 將自己的Node服務(wù)器擴(kuò)展為多線程服務(wù)器

    nodejs在v0.6.x之后 增加了一個(gè)模塊 cluster 用于實(shí)現(xiàn)多進(jìn)程,利用child_process模塊來創(chuàng)建和管理進(jìn)程,增加程序在多核CPU機(jī)器上的性能表現(xiàn)。本文將介紹利用cluster模塊創(chuàng)建的多線程的問題。
    2014-11-11
  • nodeJS與MySQL實(shí)現(xiàn)分頁(yè)數(shù)據(jù)以及倒序數(shù)據(jù)

    nodeJS與MySQL實(shí)現(xiàn)分頁(yè)數(shù)據(jù)以及倒序數(shù)據(jù)

    這篇文章主要介紹了nodeJS與MySQL實(shí)現(xiàn)分頁(yè)數(shù)據(jù)以及倒序數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 使用Node.js插件給指定目錄下的所有圖片添加上文字水印

    使用Node.js插件給指定目錄下的所有圖片添加上文字水印

    加水印是為了保護(hù)圖片的版權(quán)和安全,在互聯(lián)網(wǎng)上,很容易將圖片下載或者截屏保存下來,然后進(jìn)行二次使用,這就侵犯了原作者的版權(quán),此外,水印也可以幫助識(shí)別圖片的來源和所有者,因此本文給大家介紹了如何使用Node.js插件給指定目錄下的所有圖片添加上文字水印
    2023-12-12
  • ajax +NodeJS 實(shí)現(xiàn)圖片上傳實(shí)例

    ajax +NodeJS 實(shí)現(xiàn)圖片上傳實(shí)例

    本篇文章主要介紹了ajax +NodeJS 實(shí)現(xiàn)圖片上傳實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • node刪除、復(fù)制文件或文件夾示例代碼

    node刪除、復(fù)制文件或文件夾示例代碼

    這篇文章主要給大家介紹了關(guān)于node刪除、復(fù)制文件或文件夾的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 手動(dòng)下載Chrome并解決puppeteer無法使用問題

    手動(dòng)下載Chrome并解決puppeteer無法使用問題

    本篇文章主要介紹了手動(dòng)下載Chrome并解決puppeteer無法使用問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • Node.js開發(fā)之訪問Redis數(shù)據(jù)庫(kù)教程

    Node.js開發(fā)之訪問Redis數(shù)據(jù)庫(kù)教程

    這篇文章主要介紹了Node.js開發(fā)之訪問Redis數(shù)據(jù)庫(kù)教程,本文講解了安裝Redis的Node.js驅(qū)動(dòng)、編寫測(cè)試程序以及npm遠(yuǎn)程服務(wù)器連接十分緩慢的解決方法,需要的朋友可以參考下
    2015-01-01
  • 從零開始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例

    從零開始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例

    這篇文章主要介紹了Node.js設(shè)置HTTP頭的方法,詳細(xì)分析了常見HTTP頭的功能、原理及相關(guān)設(shè)置操作技巧,需要的朋友可以參考下
    2017-04-04
  • Node.js中MongoDB查詢數(shù)據(jù)的方法

    Node.js中MongoDB查詢數(shù)據(jù)的方法

    在Node.js中,可以使用MongoDB驅(qū)動(dòng)程序和Mongoose庫(kù)來進(jìn)行MongoDB的查詢操作,本文就來介紹一下Node.js中MongoDB查詢數(shù)據(jù)的方法,感興趣的可以了解一下
    2023-12-12

最新評(píng)論