2013-05-02 62 views
0

我正在創建Express應用程序並使用Mongoose保存數據。Node.js需求的最佳實踐

我創建了一個用戶模型(用戶名爲&密碼)。它需要能夠被保存。所以我在Models/user-model.js中使用require('mongoose')。在用戶的路線中,我希望能夠獲得所有用戶或只是找到一些用戶。所以我需要require('mongoose')那裏。同樣在主js文件(app.js)中,我創建了一個到數據庫的連接,所以這裏也有一個require('mongoose')

這一切都很好,但它是在所有這些文件中要求貓鼬的最佳方式嗎?還是有更好的方法來做到這一點?

+0

我只是需要像你這樣做需要。 – chovy 2013-05-02 22:01:31

回答

4

那麼,「最好」很難說肯定。但是,你正在做的是一種常見的做法,在大多數情況下應該沒問題。

需要mongoose一日一次,這將是cached for subsequent requires

模塊是他們第一次加載後緩存。這意味着(除其他外)每次調用require('foo')時都會返回完全相同的對象,如果它解析爲相同的文件。

多次調用require('foo')可能不會導致模塊代碼被多次執行。 [...]

+0

我也看到人們只是簡單地將db對象直接放在req對象下面,這樣在任何中間件中你都可以簡單地到達它/ w/req.db.不知道這是否是最好的做法,但這很常見。 – 0xception 2013-05-04 08:38:55

0

考慮到模塊緩存......你認爲創建一個全局APP對象並將諸如模型和庫之類的東西存儲在bootstrap中是一個好主意,然後只需將該對象傳遞給其他模塊,或只需要模塊依賴關係時,無論我們的模塊是否有很多require()句子?