精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

黄色免费在线网站| 日本一级片免费看| 看亚洲a级一级毛片| 一区二区高清在线| 久久久com| 欧美日韩一区二区免费在线观看 | 色欧美激情视频在线| 久久av中文字幕片| 亚洲三级免费电影| 国产精品一区二区你懂得| 欧美日韩综合一区二区三区| 国产精品久久观看| 日韩精品极品在线观看| 日韩欧美国产片| 人人草在线视频| 自拍偷拍欧美精品| 蜜桃在线一区二区三区精品| 国产美女免费视频| 久久久久在线| 免费av一区二区| 免费看污片的网站| 加勒比色综合久久久久久久久| 伊人开心综合网| 欧美极品一区| 黄色小视频免费观看| 蜜桃免费网站一区二区三区| 亚洲精品美女在线观看| 欧美日韩一区二区三区69堂| 黄在线观看免费网站ktv| 中文字幕日韩精品一区| 日韩av影视| 凹凸精品一区二区三区| 人体久久天天| 欧美一卡二卡三卡四卡| 国风产精品一区二区| 国产精品久久久久一区二区国产| 自拍日韩欧美| 正在播放亚洲1区| 中文字幕一区二区三区人妻不卡| 草美女在线观看| 亚洲日穴在线视频| 一区精品视频| 在线观看a视频| 国产欧美一区二区精品秋霞影院| 国产精品免费视频xxxx| 日韩精品一区二区不卡| 欧美日一区二区在线观看| 久久精品久久久久久国产 免费| 日本55丰满熟妇厨房伦| 日本在线一区二区| 在线免费av一区| 黑人粗进入欧美aaaaa| 欧美日韩国产v| 色哟哟一区二区在线观看| 欧洲黄色一级视频| 欧美拍拍视频| 91麻豆国产福利在线观看| 国产精品免费视频一区二区| 成人无码一区二区三区| 不卡的看片网站| 好吊色欧美一区二区三区四区 | 亚洲一区二区三区高清不卡| 久久久久久有精品国产| 色播视频在线播放| 亚洲理论在线| 亚洲欧美国产va在线影院| 亚洲一区二区三区无码久久| 欧美成人基地| 亚洲日本欧美中文幕| 极品人妻videosss人妻| 精品久久电影| 成年无码av片在线| 国产真实乱人偷精品视频| 99综合精品| 国产国产精品人在线视| 黄页网站免费观看| 亚洲精品三级| 国产精品a久久久久久| 亚洲无码精品在线播放| 日韩午夜av| 国产成人精品久久二区二区| 亚洲图片小说视频| 国产一区二区三区在线观看免费视频 | 欧美精品v日韩精品v国产精品| 一级黄色片在线| 综合一区二区三区| 97精品久久久| 在线播放精品视频| 高清久久久久久| 日韩精品av一区二区三区| 国产在线更新| 日韩欧美亚洲国产一区| 天堂av8在线| 欧美精品中文字幕亚洲专区| 色偷偷偷亚洲综合网另类| 久久免费少妇高潮99精品| 久热综合在线亚洲精品| 91香蕉亚洲精品| 男同在线观看| 亚洲一区二区在线免费看| 激情婷婷综合网| 中文字幕区一区二区三| 在线亚洲欧美视频| 久久精品欧美一区二区| 麻豆国产欧美日韩综合精品二区 | 免费国产自线拍一欧美视频| 国产精品久久综合av爱欲tv| 亚洲精品久久久久avwww潮水| 久久国产精品第一页| 国产一区二区在线网站 | 精品爽片免费看久久| 网站永久看片免费| 中文字幕伦av一区二区邻居| 精品国产一区av| av图片在线观看| 国产伦理精品不卡| 亚洲成人午夜在线| 蜜桃视频www网站在线观看| 日韩一区二区在线观看视频| 91精品国自产在线| 一区二区自拍| 亚洲一区二区三区久久| yiren22亚洲综合伊人22| 天天做天天摸天天爽国产一区| 少妇高潮喷水在线观看| 9.1麻豆精品| 正在播放欧美视频| 日韩人妻精品中文字幕| av动漫一区二区| 国产伦精品一区二区三区| 日本三级视频在线播放| 在线看日本不卡| 亚洲永久精品ww.7491进入| 国产综合激情| 亚洲free性xxxx护士hd| 成人免费在线观看| 欧美亚洲国产bt| x88av在线| 日韩 欧美一区二区三区| 久久天天狠狠| 欧美xx视频| 国产一区二区三区日韩欧美| 午夜精品一区二| 久久国产夜色精品鲁鲁99| 欧美亚洲一级二级| 性欧美超级视频| 亚洲乱码国产乱码精品精天堂| 美女爆乳18禁www久久久久久| 大色综合视频网站在线播放| 国产极品精品在线观看| 你懂得网站在线| 欧亚洲嫩模精品一区三区| av网在线播放| 麻豆视频一区二区| 在线观看免费91| 欧美专区视频| 午夜精品www| 黄色国产在线| 在线亚洲高清视频| 18精品爽国产三级网站| 捆绑紧缚一区二区三区视频| 中文字幕在线中文字幕日亚韩一区| 牛牛精品在线视频| 欧美精品一区二区三区很污很色的| av中文字幕网址| 999久久久免费精品国产| 91精品久久久久久久久久另类 | 国产午夜精品一区在线观看| 欧美大片国产精品| 国产午夜福利一区二区| 久久先锋资源网| 韩国黄色一级大片| 一区三区自拍| 国产v综合ⅴ日韩v欧美大片| 中文日本在线观看| 精品久久久久久久久久| 精品无码人妻一区| 久久精品国产久精国产| 国产一区 在线播放| 亚州av日韩av| 国产欧美一区二区三区在线| 深夜国产在线播放| 亚洲精品一区av在线播放| 在线观看免费视频一区| 亚洲综合丁香婷婷六月香| 国产夫妻性爱视频| 久久99久久久久久久久久久| 99er在线视频| 清纯唯美日韩| 国产精品一区二区三区观看| 日韩大尺度黄色| 欧美久久精品午夜青青大伊人| 欧美成人一区二区视频| 99久免费精品视频在线观看| 免费看a级黄色片| 亚洲成av人电影| 日韩美女在线观看| 日韩大片b站免费观看直播| 欧美日韩美女一区二区| 黄色一级免费视频| 日本一区二区免费在线| 亚洲乱妇老熟女爽到高潮的片| 亚洲精品网址| 国产日韩精品久久| 青青国产精品| 欧洲日本亚洲国产区| 成人a在线视频免费观看| 亚洲欧美制服综合另类| 亚洲精品福利网站| 欧美乱妇15p| 一二三区免费视频| 亚洲国产精品嫩草影院| 搜索黄色一级片| 欧美激情自拍偷拍| 欧美高清激情视频| 人妻无码视频一区二区三区| 99久久99热这里只有精品| 欧美激情专区| 久久动漫网址| 国产精品美女xx| 国产精品中文| 91精品国产综合久久香蕉最新版| 青青色在线视频| 精品美女一区二区三区| 国产精品自拍电影| 欧美日韩中字一区| 中文字幕在线欧美| 欧美日韩国产在线播放| 青青草原免费观看| 亚洲日本丝袜连裤袜办公室| 国产农村妇女精品一区| 国产欧美日韩麻豆91| 久久无码专区国产精品s| 精品一区二区免费视频| 超碰在线人人爱| 日本怡春院一区二区| 日本三级免费观看| 国产精品久久久久久久免费软件| 午夜一区二区三区| 天海翼亚洲一区二区三区| 精品视频一区二区三区四区| 精品国产乱子伦一区二区| 国产高清一区视频| 99ri日韩精品视频| 欧美激情啊啊啊| 性欧美猛交videos| 久久99精品国产99久久6尤物| 飘雪影院手机免费高清版在线观看| 在线免费观看一区| 久久久免费高清视频| 精品免费在线观看| 成人毛片18女人毛片| 国产精品久久三区| 萌白酱视频在线| 国产精品电影一区二区三区| 国产在线观看免费视频软件| 成人av综合一区| 加勒比精品视频| 91一区二区三区在线播放| 人妻丰满熟妇av无码久久洗澡| 国产在线精品免费av| 日本55丰满熟妇厨房伦| 成人国产视频在线观看| 强迫凌虐淫辱の牝奴在线观看| 美腿丝袜亚洲一区| 红桃视频 国产| 成人在线免费视频| 亚洲欧洲精品天堂一级| 青娱乐国产视频| 亚洲欧洲av一区二区三区久久| 日本护士做爰视频| 久久五月婷婷丁香社区| 久久久久亚洲AV成人无在 | 亚洲av毛片在线观看| 国产精品原创巨作av| 国产原创剧情av| 欧美精彩视频一区二区三区| 国产精品18在线| 亚洲狠狠丁香婷婷综合久久久| 欧美三级视频网站| 国产精品高潮久久久久无| 国产av 一区二区三区| 亚洲自拍偷拍九九九| 欧美一级特黄视频| 欧美日韩国产片| 黄色一级a毛片| 一区国产精品视频| 欧美videossex| 国产成人av网址| 日本伊人久久| 色女人综合av| 尤物网精品视频| www.这里只有精品| kk眼镜猥琐国模调教系列一区二区 | 91精品国产综合久久久久久 | 黑人玩欧美人三根一起进| 午夜精品视频在线| 国产毛片精品久久| 国产精品嫩草在线观看| 久久要要av| www.玖玖玖| 国产麻豆成人传媒免费观看| 中国av免费看| 亚洲精品大片www| 中文字幕免费视频观看| 精品日产卡一卡二卡麻豆| 成人福利在线| 777午夜精品福利在线观看| 成人豆花视频| 视频一区二区三| 国产日韩一区二区三区在线| 毛片毛片毛片毛| 国产日韩欧美高清| 国产精品1234区| 欧美一区二区三区在线| 国产视频精品久久| 91精品国产一区| 风间由美性色一区二区三区四区| 成人动漫在线视频| 电影天堂国产精品| www.成人av.com| 国产精品久久久久久麻豆一区软件| 自拍偷拍视频在线| 美女日韩在线中文字幕| 久久久午夜精品福利内容| 亚洲乱码国产乱码精品精的特点 | 91福利在线看| 午夜在线观看视频18| 欧美成年人视频| 日韩伦理一区二区| 色噜噜狠狠色综合网| 午夜综合激情| 三叶草欧洲码在线| 五月婷婷综合在线| 中文字幕免费在线观看视频| 日韩欧美专区在线| 哥也色在线视频| 91精品国产自产在线| 日韩三级在线| 男人添女人下面免费视频| 国产午夜精品一区二区三区嫩草| 国产一区在线观看免费| 色狠狠av一区二区三区| 国产精品毛片一区二区三区四区| 另类美女黄大片| 亚洲成人a级片| 国产精品12p| 国产精品一卡二卡| 欧美精品成人久久| 日韩一区二区免费高清| 91三级在线| 成人av播放| av成人毛片| 中文字幕第20页| 欧美性大战久久久久久久| 自拍视频在线网| 91久久国产婷婷一区二区| 一区二区三区在线观看免费| 国产黄色一区二区三区| 亚洲国产欧美在线| 四虎永久在线精品免费网址| 国产91成人在在线播放| 沈樵精品国产成av片| 欧美 亚洲 视频| 丁香一区二区三区| 天天操天天爽天天干| 亚洲欧洲日产国产网站| 日韩一区精品| 男女激烈动态图| 99久久亚洲一区二区三区青草| 男人天堂资源网| 91精品国产综合久久香蕉的特点 | 最近2019年手机中文字幕 | 国产精品久久综合av爱欲tv| 日韩av有码| 黄色片子免费看| 狠狠爱在线视频一区| 888av在线| 国产精品国产精品| 丝袜美腿亚洲色图| 在线观看黄网址| 亚洲国产中文字幕久久网| 欧美黑人疯狂性受xxxxx野外| 国产九色91| 日韩电影免费一区| 佐佐木明希电影| 欧美视频在线观看免费网址| 一级毛片视频在线观看| av激情久久| 久久精品男女| 成人免费黄色小视频| 精品无码久久久久久国产| 欧美黄色成人| 3d动漫一区二区三区| 国产精品久久久久久久久图文区| 乱子伦一区二区三区| 欧美日韩国产999| 国产一区二区三区站长工具| 在线免费看v片| 91成人在线观看喷潮|