最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Node操作MySQL的兩種方式

 更新時(shí)間:2024年05月13日 08:31:18   作者:云牧  
本文將介紹如何在?Node.js?應(yīng)用中使用?mysql2?和?TypeORM?兩種方式操作?MySQL?數(shù)據(jù)庫,文中通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)有一定的幫助,需要的朋友可以參考下

使用 mysql2 庫操作 MySQL

mysql2 是 mysql 庫的升級版,提供了更多特性,并且支持 Promise API。以下是使用 mysql2 進(jìn)行數(shù)據(jù)庫操作的基本步驟:

安裝和配置

創(chuàng)建項(xiàng)目目錄,初始化 npm,并安裝 mysql2:

mkdir myproject
cd myproject
npm init -y
npm install --save mysql2

創(chuàng)建 index.js 文件,并配置數(shù)據(jù)庫連接:

const mysql = require('mysql2');

const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'your_password',
  database: 'practice'
});

基本操作

查詢操作

connection.query('SELECT * FROM customers', (err, results, fields) => {
  if (err) throw err;
  console.log(results);
  console.log(fields.map(item => item.name));
});

插入數(shù)據(jù)

connection.execute('INSERT INTO customers (name) VALUES (?)', ['Zhang'], (err, results) => {
  if (err) throw err;
  console.log('Insert successful');
});

更新數(shù)據(jù)

connection.execute('UPDATE customers SET name="Li" WHERE name="Zhang"', (err) => {
  if (err) throw err;
  console.log('Update successful');
});

刪除數(shù)據(jù)

connection.execute('DELETE FROM customers WHERE name="Li"', (err) => {
  if (err) throw err;
  console.log('Delete successful');
});

使用連接池提高性能

連接池可以管理多個(gè)數(shù)據(jù)庫連接,提高應(yīng)用性能和響應(yīng)速度:

const mysql = require('mysql2/promise');

(async () => {
  const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'your_password',
    database: 'practice',
    waitForConnections: true, // 如果沒有可用連接,等待而不是立即拋出錯(cuò)誤
    connectionLimit: 10, // 連接池中最大連接數(shù)
    queueLimit: 0 // 最大排隊(duì)數(shù)量,0表示不限制
  });

  const [results] = await pool.query('SELECT * FROM customers');
  console.log(results);
})();

使用 TypeORM 框架操作 MySQL

TypeORM 是一個(gè)基于 TypeScript 的 ORM (對象關(guān)系映射) 框架,它可以讓開發(fā)者通過操作對象而不是 SQL 語句來處理數(shù)據(jù)庫。

項(xiàng)目設(shè)置

創(chuàng)建并配置新項(xiàng)目:

npx typeorm@latest init --name typeorm-mysql-test --database mysql

在 data-source.ts 中配置數(shù)據(jù)庫:

import { DataSource } from 'typeorm';
import { User } from './entity/User';

export const AppDataSource = new DataSource({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'your_password',
  database: 'practice',
  synchronize: true,
  entities: [User],
  connectorPackage: 'mysql2'
});

操作數(shù)據(jù)庫

使用裝飾器定義模型(Entity):

import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;
}

插入和查詢數(shù)據(jù)

import { AppDataSource } from './data-source';
import { User } from './entity/User';

AppDataSource.initialize().then(async () => {
  const user = new User();
  user.name = 'Wang';
  await AppDataSource.manager.save(user);

  const users = await AppDataSource.manager.find(User);
  console.log(users);
});

優(yōu)點(diǎn)

使用 ORM 框架可以大大簡化數(shù)據(jù)庫操作,使代碼更加直觀和易于維護(hù)。同時(shí),TypeORM 提供了強(qiáng)大的數(shù)據(jù)模型管理功能,支持自動(dòng)創(chuàng)建表、生成 SQL 語句等。

到此這篇關(guān)于使用Node操作MySQL的兩種方式的文章就介紹到這了,更多相關(guān)Node操作MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node結(jié)合swig渲染摸板的方法

    node結(jié)合swig渲染摸板的方法

    本篇文章主要介紹了node結(jié)合swig渲染摸板的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • 三分鐘教你用Node做一個(gè)微信哄女友神器(面向小白)

    三分鐘教你用Node做一個(gè)微信哄女友神器(面向小白)

    這篇文章主要介紹了三步教你用Node做一個(gè)微信哄女友神器(面向小白),用node和wechaty微信網(wǎng)頁接口開發(fā)的一款小工具,可以定時(shí)給女朋友發(fā)每天的天氣情況,天氣提醒,每日一句,通過配置機(jī)器人api后還可以實(shí)現(xiàn)微信機(jī)器人自動(dòng)陪女朋友聊天,需要的朋友可以參考下
    2019-06-06
  • node工作線程worker_threads的基本使用

    node工作線程worker_threads的基本使用

    本文主要介紹了node工作線程worker_threads的基本使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 基于Nodejs利用socket.io實(shí)現(xiàn)多人聊天室

    基于Nodejs利用socket.io實(shí)現(xiàn)多人聊天室

    這篇文章講述了websocket無到有,根據(jù)協(xié)議,分析數(shù)據(jù)幀的頭,進(jìn)行構(gòu)建websocket。雖然代碼短,但可以很好地體現(xiàn)websocket的原理。對nodejs利用socket 實(shí)現(xiàn)多人聊天室功能感興趣的朋友一起看看吧
    2017-02-02
  • 修改npm全局安裝模式的路徑方法

    修改npm全局安裝模式的路徑方法

    今天小編就為大家分享一篇修改npm全局安裝模式的路徑方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • nodejs實(shí)現(xiàn)的簡單web服務(wù)器功能示例

    nodejs實(shí)現(xiàn)的簡單web服務(wù)器功能示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)的簡單web服務(wù)器功能,結(jié)合實(shí)例形式分析了nodejs構(gòu)建web服務(wù)器的相關(guān)監(jiān)聽、響應(yīng)、數(shù)據(jù)處理等操作技巧,需要的朋友可以參考下
    2018-03-03
  • Koa2路由及koa腳手架使用入門詳解

    Koa2路由及koa腳手架使用入門詳解

    這篇文章主要為大家介紹了Koa2路由及koa腳手架的使用入門詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • nodejs微信掃碼支付功能實(shí)現(xiàn)

    nodejs微信掃碼支付功能實(shí)現(xiàn)

    本片文章通過代碼示例給大家詳細(xì)講述了如何用nodejs寫出微信掃碼支付這個(gè)功能,有興趣的朋友可以參考下。
    2018-02-02
  • nodejs爬蟲抓取數(shù)據(jù)之編碼問題

    nodejs爬蟲抓取數(shù)據(jù)之編碼問題

    這篇文章主要介紹了nodejs爬蟲抓取數(shù)據(jù)之編碼問題的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • 前端需知nodejs?express中間件使用及定義詳解

    前端需知nodejs?express中間件使用及定義詳解

    這篇文章主要為大家介紹了前端需知nodejs?express中間件使用及定義詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評論

增城市| 新化县| 左云县| 蓬安县| 尖扎县| 华宁县| 新竹市| 阿鲁科尔沁旗| 云阳县| 双流县| 蕲春县| 邹平县| 阜南县| 青阳县| 阿巴嘎旗| 义马市| 吉安市| 临江市| 如东县| 车致| 游戏| 元江| 祥云县| 莱阳市| 曲周县| 江口县| 长泰县| 新兴县| 阿巴嘎旗| 大邑县| 右玉县| 英德市| 卢湾区| 梁平县| 香河县| 沈丘县| 佛坪县| 建昌县| 恩平市| 青海省| 东平县|