---
# System prepended metadata

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

---

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


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

<br>

![](https://i.imgur.com/90moI24.jpg)
那我們來開始製作find，findOne，Delete，Update 的功能吧！
findOne比 模糊搜尋重複性更高。
所以我們應該從findOne 開始製作。

來到user.service.ts 的檔案。
然後在 create 下面下寫。

![](https://i.imgur.com/3iniNIw.png)
其實在findOne裏面我試過了直接寫id 然後遇到了
![](https://i.imgur.com/xbmxSKn.png)
![](https://i.imgur.com/PS5KHI5.png)
由於TS嚴格的執行，一開始我們定義了id為number，
所以在我們并不刻意把number放入功能裏執行。

---

我們來復習一下。
當我們注入一個名稱叫 findOne 的功能然後具有 id：number 這個函數。
而這個findOne空殼功能被賦予 repo 的 findOne（預設功能）。
那什麽是repo？ 沒錯，repo其實只是一個名稱，它其實就是Repository<User>
    
---
    
當我們寫好了Service以後，我們就會到Controller 裏面開始寫可以被呼叫的功能。

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

我們可以看到findUser 用了@Param這個參數。
    ![](https://i.imgur.com/JymCCoS.png)
如果可以用React 來説呢，它就像 useRoute() 的功能。算是取連結中的參數。
所以 async findUser(取到連結的string)這樣去理解。
由於 id 在 User 裏面是number，所以在取到連接上的ID是string，那就要做一個轉換。
this.usersService.findOne(parseInt(id))把 id轉成number。
寫功能呢，我們永遠都要去思考如果拿不到東西怎麽辦，
所以如果沒有user這玩意，那我們就回傳一個找不到的error給，否則就回傳 user 吧！
    
那我們來到了request / postman ，我們測試看看剛剛設定的功能是否順利的運作：

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

如果你拿不到東西，很大可能是你還沒有存或者整個NPM需要重新啓動哦！
（可以使用 npm run start:dev 去監控你每次的更動）
如果輸入沒有在table裏面的參數，那就會出現這樣。
    
![](https://i.imgur.com/VGVENCp.png)
![](https://i.imgur.com/d1A5gD8.png)

    

