整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ
(17)被迫吃芒果的前端工程師 - Mongoose 之 Instance methods
前言
本身 Mongoose 有提供相當多好用的內建方法,但是有時候可能我們需求比較特別,那麼當然也可以自己定義方法。
Instance methods
Instance methods 是 Mongoose 提供給我的可以自定義的方法的地方,用法其實非常簡單,只需要在 Schema 後面加上 methods 就可以了,這邊你可以試著打開 models/User.js 然後在 userSchema 後面開始撰寫
1 | |
舉例來講今天我們想要取得自己是民國幾年出生,那麼就用今年去減掉年齡就可以了
1 | |
這邊要注意不要使用箭頭函式,因為 this 會指向到資料內,而這邊概念其實跟原型非常像,如果你對 this 不熟悉的話,可以參考這一篇。
那麼該如何使用自己定義的 getBirthYear 呢?只需要在 findOne 回傳結果時加上該方法就可以使用了
1 | |

但是這邊要注意如果你使用的是 find 的話,因為他回傳的是一個陣列,因此必須這樣寫才可以運作
1 | |

當然這種方式也可以用於儲存資料,例如呼叫之後自動年齡增加並儲存
1 | |
透過這個方式當你搜尋到之後,你可以自動增加年齡並儲存。
1 | |


整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ