欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何使用Node.js連接數(shù)據(jù)庫ORM

 更新時間:2022年12月19日 15:15:39   作者:魚露  
這篇文章主要為大家介紹了詳解如何使用Node.js連接數(shù)據(jù)庫ORM示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

ORM

上文中我們講了如何使用node.js mysql2連接數(shù)據(jù)庫,接下來講講ORM

下面摘一段百科對ORM的介紹

對象關(guān)系映射(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程序設(shè)計技術(shù),用于實現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換。從效果上說,它其實是創(chuàng)建了一個可在編程語言里使用的“虛擬對象數(shù)據(jù)庫”。

講人話就是,在常用面向?qū)ο蟮恼Z言中,我們用class(不一定要class)來映射數(shù)據(jù)庫中的表,用實例化對象來映射表中的每一條數(shù)據(jù),每一欄用對象屬性表示

比如下面這個類可以映射為數(shù)據(jù)庫中的表,有兩列數(shù)據(jù),分別是name和age

class User {
    name: string
    age: string
}

下載量

目前在nodejs中常用的ORM有prisma,sequlize,typeorm等等

下面是他們的下載量對比

typeorm

接下來我們就來嘗試一下如何用typeorm來連接數(shù)據(jù)庫, typeorm提供了一些裝飾器讓我們來描述一張表的結(jié)構(gòu)

import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";
@Entity()
export class User {
  @Column()
  name: string;
  @Column()
  age: string;
}

CRUD的時候只要像操作一個對象那樣操作即可,框架會自動幫你生成sql語句執(zhí)行,這樣就可以專注于業(yè)務(wù)而無需過多關(guān)注數(shù)據(jù)庫的細(xì)節(jié)了

const user = new User();  
user.name = "jym";  
user.age = 18;  
await repository.save(user);  
const allUsers = await repository.find();  
const u = await repository.findOne({ name: "jym" });  
await repository.remove(u);

sequlize

接下來我們就來嘗試一下如何用sequlize來連接數(shù)據(jù)庫, sequlize提供了define讓我們來定義一張表的結(jié)構(gòu)

const { Sequelize, DataTypes } = require('sequelize');  
const sequelize = new Sequelize('jym', 'root', 'password', {  
    host: 'localhost',  
    dialect: 'mysql'
});
const User = sequelize.define('User', {  
    // 在這里定義模型屬性  
    name: {  
        type: DataTypes.STRING,  
    },  
    age: {  
        type: DataTypes.STRING  
    }  
});

同樣,對一行數(shù)據(jù)的CRUD可以映射為對象實例的操作

const u = await User.create({ name: "jym" });  
console.log(u.name); // "jym"  
await u.save();
// 查詢所有用戶  
const users = await User.findAll();
...
const u = await User.findOne({ where: { name: 'jym' } });  
u.name = 'test'
u.save()
u.destroy()

prisma

prisma也是差不多的方式,只不過prisma提供了另一套 Prisma schema語法來描述自己的應(yīng)用模型,相比上面兩個,它的語法更簡潔,描述能力也不比class語法差,其實定義一套這樣的語法也滿足依賴倒置的原則,這樣在以后要擴展其他語言比如GO,JAVA之類的也很方便。

model User {
    id Int @id @default(autoincrement())
    email String @unique
    name String?
    posts Post[]
}
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
const user = await prisma.user.findUnique({
    where: {
        name: 'jym',
    },
})

接下來會進一步講解如何用node.js開發(fā)一個應(yīng)用,感興趣的朋友記得關(guān)注一波,謝謝支持

以上就是詳解如何使用Node.js連接數(shù)據(jù)庫ORM的詳細(xì)內(nèi)容,更多關(guān)于Node.js連接數(shù)據(jù)庫ORM的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Node.js數(shù)據(jù)庫操作之連接MySQL數(shù)據(jù)庫(一)

    Node.js數(shù)據(jù)庫操作之連接MySQL數(shù)據(jù)庫(一)

    前一陣在做項目的時候,需要通過nodejs連接到MySQL數(shù)據(jù)庫,于是簡單地學(xué)習(xí)了一下MySQL這個庫,分享一些學(xué)習(xí)心得給大家,希望對大家有幫助。下面這篇文章主要介紹了Node.js數(shù)據(jù)庫操作之連接MySQL數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • node.js中的fs.close方法使用說明

    node.js中的fs.close方法使用說明

    這篇文章主要介紹了node.js中的fs.close方法使用說明,本文介紹了fs.close方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js中的模塊系統(tǒng)介紹

    Node.js中的模塊系統(tǒng)介紹

    這篇文章介紹了Node.js中的模塊系統(tǒng),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • nodejs讀寫json文件的簡單方法(必看)

    nodejs讀寫json文件的簡單方法(必看)

    下面小編就為大家?guī)硪黄猲odejs讀寫json文件的簡單方法(必看)。
    2017-03-03
  • jQuery+koa2實現(xiàn)簡單的Ajax請求的示例

    jQuery+koa2實現(xiàn)簡單的Ajax請求的示例

    這篇文章主要介紹了jQuery+koa2實現(xiàn)簡單的Ajax請求的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Nodejs極簡入門教程(三):進程

    Nodejs極簡入門教程(三):進程

    這篇文章主要介紹了Nodejs極簡入門教程(三):進程,本文講解了Node 進程間通信、cluster 模塊等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • node執(zhí)行cmd或shell命令使用介紹

    node執(zhí)行cmd或shell命令使用介紹

    這篇文章主要為大家介紹了node執(zhí)行cmd或shell命令的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • nodejs 提示‘xxx’ 不是內(nèi)部或外部命令解決方法

    nodejs 提示‘xxx’ 不是內(nèi)部或外部命令解決方法

    本文介紹了node.js包管理工具npm安裝模塊后,無法通過命令行執(zhí)行命令,提示‘xxx’ 不是內(nèi)部或外部命令的解決方法,給需要的小伙伴參考下。
    2014-11-11
  • nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    這篇文章主要介紹了nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能,結(jié)合實例形式分析了nodejs基于TCP協(xié)議實現(xiàn)的聊天程序客戶端與服務(wù)器端具體步驟與相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-01-01
  • node.js + socket.io 實現(xiàn)點對點隨機匹配聊天

    node.js + socket.io 實現(xiàn)點對點隨機匹配聊天

    這篇文章主要介紹了node.js + socket.io 實現(xiàn)點對點隨機匹配聊天,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評論