按照nest官方文檔,使用nest CLI創建controller service module
$ nest g controller products
$ nest g service products
$ nest g module products
框架會自動生成依賴關係,在app.module.ts中
上圖中註釋掉掉//controllers, //providers 就是框架自動生成的,帶來了很多麻煩。 編譯不通過,如下圖。
這個依賴注入的問題困擾了幾個小時,最終還是踏踏實實一句一句的看官方文檔。https://docs.nestjs.com/modules
所以,一個Module就是一塊空間,如果希望把自己的Service給其他Module使用,就exports出去。問題是nest爲什麼要在AppModule中自動生成其他Module的controllers和providers呢???應該是希望這些Modules可以直接相互注入吧,省去其他每個Module的imports,但是文檔也沒說明白呀!總之註釋掉了AppModule中的controllers和providers後編譯通過了。
還沒有研究清楚,爲什麼上圖的寫法,必須匹配下圖的寫法 ?