精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端 | 嘿,Nest.js實戰開發系列之使用TypeORM操作數據庫

開發 前端 MySQL
本篇文章介紹了mysql和typeorm之間的關系,typeorm的配置,nest是如何通過typeorm連接數據庫,以及簡單的用戶表數據查詢。

寫在前面

在上一篇文章《【前端】嘿,Nest.js實戰開發系列 01 ── Nest.js初體驗》中介紹了如何上手nest.js,同時詳細介紹了如何進行項目創建、路由訪問和創建模塊,這些都是項目實踐的基礎。隨著項目的推進,我們就要考慮如何實現數據庫的連接和使用,這樣可以用來實現前后端數據交互的數據存儲。

環境準備:

  • Mysql 5.7
  • TypeORM 0.2.34

TypeORM集成

在Nest.js中可以使用任意數據庫,且內部集成提供了TypeORM 和 Sequelize ,開箱即用@nestjs/typeorm和@nestjs/sequelize包。Nest 使用TypeORM,因為它是可用于 TypeScript 的最成熟的對象關系映射器 (ORM)。由于它是用 TypeScript 編寫的,因此它可以很好地與 Nest 框架集成。

要開始使用它,我們首先安裝所需的依賴項。在命令行中輸入:

  1. $ npm install --save @nestjs/typeorm typeorm mysql2 

安裝完畢后,可以將TypeOrmModule導入根目錄AppModule。

app.module.ts

  1. import { Module } from '@nestjs/common'
  2. import { TypeOrmModule } from '@nestjs/typeorm'
  3.  
  4. @Module({ 
  5.   imports: [ 
  6.     TypeOrmModule.forRoot({ 
  7.       type: 'mysql'
  8.       host: 'localhost'
  9.       port: 3306, 
  10.       username: 'root'
  11.       password'root'
  12.       database'test'
  13.       entities: [], 
  14.       synchronize: true
  15.     }), 
  16.   ], 
  17. }) 
  18. export class AppModule {} 

切記:synchronize: true不應在生產中使用設置- 否則您可能會丟失生產數據。

該forRoot()方法支持TypeORM包中的createConnection()函數公開的所有配置屬性。此外,還有幾個額外的配置屬性如下所述。

當然,也可以在根目錄下創建ormconfig.json文件,在文件中進行數據庫信息的設置。

ormconfig.json

  1.   "type""mysql"
  2.   "host""localhost"
  3.   "port": 3306, 
  4.   "username""root"
  5.   "password""root"
  6.   "database""test"
  7.   "entities": ["dist/**/*.entity{.ts,.js}"], 
  8.   "synchronize"true 

然后,我們可以在forRoot()沒有任何選項的情況下調用:

app.module.ts

  1. import { Module } from '@nestjs/common'
  2. import { TypeOrmModule } from '@nestjs/typeorm'
  3.  
  4. @Module({ 
  5.   imports: [TypeOrmModule.forRoot()], 
  6. }) 
  7. export class AppModule {} 

注意:靜態 glob 路徑(例如,dist/**/*.entity{ .ts,.js})將無法與webpack正常工作。

其實,ormconfig.json文件是由typeorm庫加載的,因此不會應用額外的屬性設置。TypeORM 提供了getConnectionOptions從ormconfig文件或環境變量中讀取連接選項的函數。

完成以上操作后,TypeORMConnection和EntityManager對象將可用于在整個項目中注入(無需導入任何模塊)。

app.module.ts

  1. import { TypeOrmModule } from '@nestjs/typeorm'
  2. import { Connection } from "typeorm"
  3. import { UsersModule } from './users/users.module'
  4.  
  5.  
  6. @Module({ 
  7.   imports: [ 
  8.     TypeOrmModule.forRoot(), 
  9.     UsersModule 
  10.   ], 
  11.   controllers: [AppController], 
  12.   providers: [AppService], 
  13. }) 
  14. export class AppModule { 
  15.   constructor(private connectionConnection){} 

存儲庫模式

TypeORM支持存儲庫設計模式,因此每個實體都有自己的存儲庫。這些存儲庫可以從數據庫連接中獲得。

下面創建一個用戶實體,users.entity.ts在users目錄下,

users.entity.ts

  1. import {Entity, PrimaryGeneratedColumn, Column, BeforeInsert, JoinTable, ManyToMany, OneToMany} from 'typeorm'
  2. import { IsEmail } from 'class-validator'
  3. import * as argon2 from 'argon2'
  4. import { ArticleEntity } from '../article/article.entity'
  5.  
  6. @Entity('user'
  7. export class UserEntity { 
  8.  
  9.   @PrimaryGeneratedColumn() 
  10.   id: number; 
  11.  
  12.   @Column() 
  13.   username: string; 
  14.  
  15.   @Column() 
  16.   @IsEmail() 
  17.   email: string; 
  18.  
  19.   @Column({default''}) 
  20.   bio: string; 
  21.  
  22.   @Column({default''}) 
  23.   image: string; 
  24.  
  25.   @Column() 
  26.   password: string; 
  27.  
  28.   @BeforeInsert() 
  29.   async hashPassword() { 
  30.     this.password = await argon2.hash(this.password); 
  31.   } 
  32.  
  33.   @ManyToMany(type => ArticleEntity) 
  34.   @JoinTable() 
  35.   favorites: ArticleEntity[]; 
  36.  
  37.   @OneToMany(type => ArticleEntity, article => article.author) 
  38.   articles: ArticleEntity[]; 

現在開始使用Users實體,只需要在users.module.ts文件中通過entities模塊forFeature()方法選項中的數組來進行導入。

users.module.ts

  1. import { Module } from '@nestjs/common'
  2. import { UsersController } from './users.controller'
  3. import { UsersService } from './users.service'
  4. import {UsersEntity} from "./users.entity"
  5. import { TypeOrmModule } from '@nestjs/typeorm'
  6. @Module({ 
  7.   imports: [TypeOrmModule.forFeature([UsersEntity])], 
  8.   providers: [UsersService], 
  9.   controllers: [ 
  10.     UsersController 
  11.   ], 
  12.   exports: [UsersService] 
  13. }) 
  14. export class UsersModule {} 

此模塊使用forFeature()來定義在當前范圍內注冊了那些存儲庫,此時將可以使用裝飾器將UsersRepository注入到`UsersService @InjectRepository().

users.service.ts

  1. import {Get, Post, Body, Put, Delete, Query, Param, Controller} from '@nestjs/common'
  2. import { UsersService } from './users.service'
  3.  
  4. @Controller('user'
  5. export class UsersController { 
  6.   constructor(private readonly usersService: UsersService){} 
  7.  
  8.   // 查找指定用戶 
  9.   @Get("find/:id"
  10.   async findById(@Query("id") id: number){ 
  11.     return this.usersService.findById(id); 
  12.      
  13.   } 

數據表間的關系

關系是在兩個或多個表之間建立的關聯,是基于每張表的公共字段,通常是主鍵和外鍵。

數據表之間有三種關系:

因此,在實體中定義關系可以使用相應的裝飾器。

測試代碼

users.controller.ts

  1. import {Get, Post, Body, Put, Delete, Query, Param, Controller} from '@nestjs/common'
  2. import { UsersService } from './users.service'
  3.  
  4. @Controller('user'
  5. export class UsersController { 
  6.   constructor(private readonly usersService: UsersService){} 
  7.  
  8.   // 查找指定用戶 
  9.   @Get("find/:id"
  10.   async findById(@Query("id") id: number){ 
  11.     return this.usersService.findById(id); 
  12.      
  13.   } 

當我們運行代碼時,數據庫自動生成了users表。

而當我們在postman向服務器請求指定id的用戶信息時,請求結果如下所示:

后臺顯示結果如下:

我們看到以上代碼測試是正確的。

小結

本篇文章介紹了mysql和typeorm之間的關系,typeorm的配置,nest是如何通過typeorm連接數據庫,以及簡單的用戶表數據查詢。

其實筆者之前也用過 Sequelize ,現在想要嘗試typeorm和nest的搭配,所以文章寫的有些亂,建議諸位多加查看官方文檔:《Nest官方文檔》和《Typeorm官方文檔》

 

責任編輯:姜華 來源: 前端萬有引力
相關推薦

2021-06-18 06:48:54

前端Nest.js技術熱點

2011-07-01 13:42:24

QT 數據庫

2023-06-15 15:21:43

2009-09-15 09:50:07

Linq操作數據庫

2020-11-16 08:56:02

Python

2011-07-05 10:27:06

MySQL數據庫檢索排序

2011-04-19 10:20:09

數據庫

2009-09-03 09:52:26

C# treeview

2009-07-07 09:24:37

LINQ檢索

2009-08-24 16:46:04

C# 泛型

2009-08-04 14:52:33

Visual Web ASP.NET

2023-12-27 13:44:00

數據庫系統分布式

2023-04-27 09:36:43

2023-12-14 15:07:31

多線程數據庫代碼

2022-10-09 15:41:54

Python數據庫

2022-03-18 21:51:10

Nest.jsAOP 架構后端

2022-02-02 20:21:24

短信驗證碼登錄

2016-05-11 10:09:49

數據層代碼FastQuery

2009-12-28 16:57:40

ADO .NET 類

2023-05-23 16:25:48

MyBatisSQL數據庫
點贊
收藏

51CTO技術棧公眾號

欧美一区二区在线视频| 国产一区二三区好的| 欧美日韩在线播放| 国产一区再线| 精品国产乱码久久久久久鸭王1 | 欧美精品九九久久| 在线能看的av网站| 国产主播福利在线| 在线亚洲观看| 日韩欧美一区中文| 青少年xxxxx性开放hg| 2018国产在线| 亚洲大尺度网站| 91精品蜜臀一区二区三区在线| 色婷婷亚洲一区二区三区| 国产欧美日韩综合精品二区| 国产黄色片在线免费观看| 日韩毛片免费看| 中文字幕国产一区二区| 国产成人一区二区在线| 50一60岁老妇女毛片| 国产天堂在线播放视频| 风间由美性色一区二区三区| 久久久精品久久久| 午夜激情视频网| 成人影院在线观看| 国产精品一二二区| 久久99国产精品自在自在app| 粉色视频免费看| 精品孕妇一区二区三区| 加勒比av一区二区| 免费av一区二区| 乳色吐息在线观看| 欧美xxxx免费虐| 成人国产在线观看| 欧美亚洲视频在线看网址| 在线免费观看污视频| 女厕盗摄一区二区三区| 2021国产精品久久精品| 国产成人精品久久亚洲高清不卡| 公侵犯人妻一区二区三区| 午夜日韩成人影院| 亚洲国产专区校园欧美| 亚洲精品成a人在线观看| 黄色国产一级视频| 蜜桃视频在线观看网站| 日韩国产高清在线| www.亚洲成人| 色欲欲www成人网站| 国产蜜臀av在线播放| 91尤物视频在线观看| 国产成人精彩在线视频九色| 国产男女猛烈无遮挡在线喷水| 99视频这里有精品| 亚洲一区二区三区中文字幕| 九色一区二区| 亚洲一区二区三区高清视频| 欧美在线播放| 精品亚洲夜色av98在线观看| www.亚洲高清| 国产精品一品| 欧美极品xxx| 欧美日韩成人网| 素人fc2av清纯18岁| 福利一区二区| 亚洲成av人**亚洲成av**| 久久久福利视频| 91久久精品国产91性色69| 欧美视频不卡| 中日韩美女免费视频网站在线观看| 中文av字幕在线观看| 99riav视频在线观看| 亚洲国产经典视频| 国产区二精品视| 亚洲熟妇av乱码在线观看| 韩日精品视频| 色妞久久福利网| 色综合久久五月| 日日夜夜亚洲精品| 色综合色综合色综合| 佐佐木明希av| 69久久久久| 91在线视频网址| 久久99精品久久久久久园产越南| 日产精品一区二区| 欧美一二三在线| 逼特逼视频在线| 黄色网在线免费观看| 91年精品国产| 国产aⅴ精品一区二区三区黄| 日本熟女毛茸茸| 欧美日一区二区在线观看| 亚洲欧美日韩视频一区| 中文字幕av一区二区三区人妻少妇 | 国产精品天天干| 国产欧美自拍一区| 337p亚洲精品色噜噜狠狠| 99精品免费在线观看| www.综合网.com| 尤物视频一区二区| 69精品小视频| 精品97人妻无码中文永久在线| 国产欧美一区二区精品久久久| 欧美一级二级三级乱码| www.com黄色片| 日韩精品免费观看视频| 姬川优奈aav一区二区| 国产自产在线视频| 视频在线这里都是精品| 亚洲视频资源在线| 永久免费精品视频网站| 噜噜噜在线观看播放视频| 91天堂素人约啪| 久久久久久久久久久久久久一区| 亚洲精品综合网| 成人免费视频视频| 国产日韩欧美二区| 天天干天天舔天天射| 成人18视频日本| 国产一区二区自拍| 熟妇高潮一区二区高潮| 不卡的av中国片| 国新精品乱码一区二区三区18| 亚洲黄色精品视频| 国产suv精品一区二区883| 91麻豆桃色免费看| 99产精品成人啪免费网站| 国产在线精品一区二区夜色| 96pao国产成视频永久免费| 99国产精品久久久久99打野战| 国产一区二区三区观看| 99电影在线观看| 人妻91麻豆一区二区三区| 成人激情av网| 欧美二区三区| xxxxx日韩| 久久精品国产精品亚洲精品| 国产精品久久久久久久久久ktv| 日本成人一级片| 国产在线不卡视频| 国产精品久久精品视| 五月婷婷在线观看视频| 久久久精品综合| 亚洲精品久久区二区三区蜜桃臀 | 成人精品在线视频观看| 九色视频成人porny| 国产天堂素人系列在线视频| 国产精品人人做人人爽人人添| 在线观看日本一区| 牛牛精品视频在线| 色综合天天综合网天天看片| 国产精品igao| 欧美精品三级在线| 亚洲欧美日韩精品久久亚洲区 | 日韩av免费看网站| 91 中文字幕| 波多野结衣中文字幕一区二区三区| 九色一区二区| 免费人成在线观看播放视频| 亚洲国产日产av| 午夜精品一区二区在线观看| 在线免费观看黄| 亚洲一区二区在线播放相泽| 欧美日韩亚洲一二三| 精品中文字幕一区二区三区四区| 亚洲国产精久久久久久久| 欧美午夜激情影院| 激情综合自拍| 国产在线视频91| 亚洲三级中文字幕| 亚洲少妇30p| 污污视频网站免费观看| 奇米一区二区| 一区二区三区国产在线观看| 精品视频一区二区在线观看| 蜜芽一区二区三区| 好吊色欧美一区二区三区 | 青青在线免费观看视频| 国产精品色婷婷在线观看| 亚洲欧美在线播放| 69av.com| 国内不卡的二区三区中文字幕| 玛丽玛丽电影原版免费观看1977| 成人高清免费在线| 欧美性猛交xxxx黑人交| 久久久久9999| 黄色av日韩| 亚洲bt欧美bt日本bt| 国产毛片av在线| 精品美女久久久久久免费| 天堂在线精品视频| 欧美电影一区| 国产精品久久久久7777婷婷| 天堂成人在线| 亚洲va天堂va国产va久| 一级黄色免费毛片| 午夜免费一区| 国产精品免费一区豆花| 三级视频网站在线| 天天综合网天天综合色| 自拍视频第一页| 欧美黄色aaaa| 99re国产在线播放| 色呦呦在线视频| 日韩网站在线看片你懂的| 手机在线中文字幕| 久久成人精品无人区| 偷拍视频一区二区| 日韩av首页| 中文字幕亚洲欧美日韩2019| 无码人妻久久一区二区三区不卡| caoporm超碰国产精品| 男人添女荫道口女人有什么感觉| 九九九九九九精品任你躁| 久久香蕉国产线看观看av| 国产露脸91国语对白| 中文字幕日韩欧美一区二区三区| 黄色三级视频在线| 日韩免费久久| 成人国产精品av| а√天堂官网中文在线| 欧美日韩国产另类不卡| 欧美a级片免费看| 九九国产精品视频| 五月天激情图片| 这里视频有精品| 欧美极品少妇xxxxⅹ免费视频| 亚洲乱色熟女一区二区三区| 亚洲高清免费观看| 色天使在线视频| 日日摸夜夜添夜夜添精品视频 | 国产在线观看免费网站| 91极品美女在线| 日韩免费成人av| 国产自产2019最新不卡| 337p亚洲精品色噜噜狠狠p| 日韩在线网址| 欧美一区第一页| 91se在线| 精品少妇一区二区三区免费观看| 国产精品第九页| 久久久噜噜噜久噜久久综合| 亚洲黄色小视频在线观看| 亚洲区综合中文字幕日日| 国产精品免费区二区三区观看| 免费在线国产视频| 亚洲人成在线观看网站高清| 怡红院男人天堂| 一级特黄大欧美久久久| 特大黑人巨人吊xxxx| 久久99精品久久久久久动态图| 成年在线观看视频| 国产日韩欧美一区二区三区| 成人国产精品日本在线| 国产无遮挡裸体视频在线观看| 亚洲欧美资源在线| 国产露脸国语对白在线| 欧美日韩国产中文精品字幕自在自线| 中文字幕在线观看免费高清| 韩国成人精品a∨在线观看| 日韩中字在线观看| 久久中文视频| 精品国产综合区久久久久久| 97成人超碰| 国外成人在线直播| 男人影院在线观看| 国产视频久久网| 国产尤物在线观看| 欧美性猛交xxxx黑人| 性色av无码久久一区二区三区| gogo大胆日本视频一区| 99九九99九九九99九他书对| 中文一区在线| 成人免费在线视频播放| 欧美艳星介绍134位艳星| 国产精品中出一区二区三区| 青草综合视频| 欧洲成人在线观看| 欧美性猛片xxxxx免费中国 | 成人免费观看网站| 97精品国产99久久久久久免费| 欧美激情视频网| 老司机在线永久免费观看| 亚洲欧美激情另类校园| 亚洲精品网站在线| 制服丝袜亚洲精品中文字幕| 91在线视频免费播放| 五月激情丁香一区二区三区| 国产精品成人免费观看| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲最大免费视频| av高清不卡在线| 少妇伦子伦精品无吗| 久久精品国产**网站演员| 亚洲成熟丰满熟妇高潮xxxxx| 亚洲手机视频| 国产高清不卡无码视频| 中文字幕亚洲精品乱码| 在线看无码的免费网站| 国内精品久久久久久久久电影网 | 一区二区三区日韩精品视频| 91视频最新网址| 国产精品乱人伦| jizz日本在线播放| 国产日产精品一区| 在线观看日韩精品视频| thepron国产精品| 欧美无人区码suv| 337p粉嫩大胆噜噜噜噜噜91av| 99久久免费看精品国产一区| 成人av网址在线| 免费a在线观看播放| 99国产一区二区三精品乱码| 中文字幕一区二区人妻电影丶| 成人深夜福利app| 影音先锋人妻啪啪av资源网站| 粉嫩在线一区二区三区视频| 国产日韩视频一区| thepron国产精品| av黄色免费网站| 国产亚洲一二三区| 国产1区2区在线观看| 中文字幕免费不卡| 一级性生活免费视频| 亚洲丝袜美腿综合| 国产真实乱偷精品视频| 亚洲成人综合在线| 四虎精品永久在线| 91黄色免费看| 一二区在线观看| 日韩一卡二卡三卡四卡| 亚洲经典一区二区三区| 亚洲激情在线观看| 国产福利在线| 精品国产美女在线| 麻豆蜜桃在线| 青青a在线精品免费观看| 黄色成人在线视频| 97久久精品午夜一区二区| 波多野结衣在线一区二区 | 福利片一区二区三区| 国产精品一区久久久久| 国产不卡一二三| 欧美国产视频在线| 欧美日韩在线视频免费| 激情成人中文字幕| 中文字幕在线网址| 精品久久人人做人人爰| 蜜桃视频在线观看视频| 久久av红桃一区二区小说| h片视频在线观看| 国产精品日韩在线| 超碰精品在线观看| 日韩影院一区| 欧美日韩国产色综合一二三四| 欧美日韩成人免费视频| 蜜臀久久99精品久久久久宅男| 污视频在线观看免费网站| 99久久99久久综合| 中文字幕观看av| 欧美视频中文字幕在线| 91久久久久久久久久久久| 精品国产电影一区二区| av免费观看一区二区| 久久久在线免费观看| 欧美成人aaa| 精品欧美一区二区久久久伦| 999国产精品永久免费视频app| 国产成人永久免费视频| 美腿丝袜在线亚洲一区| 在线看黄色的网站| 国产精品久久久久桃色tv| 91香蕉在线视频| 欧美一级在线免费| 成人在线高清视频| 97精品免费视频| 警花av一区二区三区| 手机成人在线| 久久久999| 男男一级淫片免费播放| 亚洲欧美色综合| 一级片免费网站| 国产亚洲精品久久久久动| 超碰97国产精品人人cao| 成人免费午夜电影| 精品国产一区二区三区久久久蜜臀| 丁香色欲久久久久久综合网| 精品一区二区久久| 人人妻人人澡人人爽| 天天影视色香欲综合网老头| 国产高清免费观看| 啊v视频在线一区二区三区| 欧美最新精品| 欧美亚州在线观看| 噜噜噜91成人网| 免费在线观看你懂的| 亚洲成在线观看| 日本高清视频www| 欧美激情成人在线视频| 免费欧美网站|