---
# System prepended metadata

title: 學習 NESTJS feat Part 5
tags: [TypeScript, TypeORM, Nestjs, Project]

---

學習 NESTJS feat Part 5
===
![](https://i.imgur.com/1fldI8k.png)


---
###### tags: `Nestjs`,`TypeScript`,`TypeORM`,`Project`

<br>

### 更深入地瞭解 Controller & Service & Repository

![](https://i.imgur.com/MjqHegZ.png)

Controller：
- 設立route，例如區分鏈接
- 接受不同的data來自各種POST/GET/PUT 去做管理
- 導入Service邏輯做最後執行

Services：
- 實踐操作邏輯。
- 可以接受 Entity的格式或邏輯

Repository：
- 會做最後的把關確認即將寫入DB的格式是否正確
- TypeORM執行的地方


![](https://i.imgur.com/DhHMFbt.png)

回頭來看看這個table，我們會發現repo.create 是在APP裏操作，而 save（Repository） 則在Create，APP内部執行完畢之後，再寫道DB。

### 爲什麽要用 Entity?

即使不使用Entity也可以直接以Body的POST，存入Save裏。
![](https://i.imgur.com/CbHGhTl.png)

以這樣的方式其實也可以達到一樣的結果，這時候就回到標題的問題。
<br>

![](https://i.imgur.com/xSxIP4B.png)
在一個Table的情況下去做injection 其實會比只是單純把資料灌進去，并沒有使用Hook。
那要如何確保SQL有接好這樣的球呢？答案是沒有辦法。
所以在注入SQL前，都會建議**做好所有格式的編排**，
因爲經過了**編排**以後還要做**檢測是否符合所設定的格式**。





