2017-10-10 49 views
0

我正在通過這個節點ToDoList應用程序API教程。它有一個模型,一個控制器和一個路線文件: https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbd使用mongoose.model沒有模式參數

回購: https://github.com/generalgmt/RESTfulAPITutorial

在這個模型中,我們用貓鼬定義TaskSchema和出口mongoose.model('Tasks', TaskSchema);

在控制器中,我們創建了一個任務var,設置等於mongoose.model('Tasks', TaskSchema);並用它來定義幾個控制器方法。

server.js需要來自模型的任務,但似乎從未使用任何東西。服務器還需要路由文件,這反過來又需要控制器,但我可以看到他們如何與模型進行交互。

應用程序的其餘部分如何知道模型?控制器如何知道Task的模式?這全是貓鼬的魔法嗎?

回答

1

任務模式被稱爲在控制器在線路#4 https://github.com/generalgmt/RESTfulAPITutorial/blob/master/api/controllers/todoListController.js#L4

它似乎像server.js被所需的模型不被使用。

Server.js或路由不需要與模式交互,因爲在Task構造函數中需要與模式交互所需的所有方法。控制器知道任務模式,因爲它在控制器中是必需的。

+0

好的,如果兩個文件需要來自同一個package.json的貓鼬,它們被賦予相同的貓鼬實例,並且同樣的數據庫連接? –

+0

我的問題是如何理解'Task = mongoose.model('Tasks');'是否需要任何東西。對我來說,這看起來像創建一個模型,但沒有任何模式。 –

+0

哦,我明白了。因此,模式定義了您需要的集合的結構,而模型實際上爲您提供了一個與之交互的接口。 –

相關問題