1
我正在使用插件node-mongodb-native
與MongoDB和Node.js一起體驗。我遇到的一個問題是嵌套回調的數量。我試圖通過減少查詢所需的代碼來簡化一些事情。構建集合緩存是否是一個好習慣?
取而代之的是...
db.collection("test", function(err, collection) {
collection.find(...).toArray(function(err, results) {
// ...
});
});
...我想建立它作爲收藏品的高速緩存,從而第一回調是沒有必要的對象。我使用下面的代碼爲建設目標:
var collections = {};
["test", "foo"].forEach(function(name) {
db.collection(name, function(err, coll) {
collections[name] = coll;
});
});
有了它,我可以清理第一代碼片段:
collections.test.find(...).toArray(function(err, results) {
// ...
});
我想知道這是否是一個好實踐。它工作得很好,但我認爲獲得集合的回調是有原因的。像我現在所做的那樣構建集合緩存是否有意義?
集合對象似乎是活的,因爲它反映了由外部應用程序對集合所做的更新。關於結合回調的解決方案很有趣。我會搗鼓它。 – pimvdb
@pimvdb我在[我的代碼中使用了一個類似的技術[couchdb](https://github.com/Raynos/raynos-blog/blob/master/src/data/post.js#L6)。在這裏,我緩存對數據庫的引用,而不是每次我想查詢時都得到它。我知道這個參考是「緩存安全」。只要你的收藏是「緩存安全」,那麼這是一個很好的技術 – Raynos