我正在寫一個快速應用程序,將數據從我的視圖推送到數據庫。但大部分數據都映射到數據庫表中的其他數據。在服務器端緩存選擇查詢數據
例如,是選擇學生姓名下降向下,一旦你通過自己的名字選擇學生,跌幅低於下跌 - 將會證明他被允許用於所有角色。
所以我下面的
app.post('\action1', function(req,res){
function querySomething(){
var defered = Q.defer();
connection.query(some_select_query,defered.makeNodeResolver());
return defered.promise;
}
function querySomethingElse(){
var defered = Q.defer();
connection.query(some_other_select_query,defered.makeNodeResolver());
return defered.promise;
}
Q.all([querySomething(), querySomethingElse()]).then((results,err) => {
connection.release()
if(results){
res.render('some_view.ejs', {
result1:results[0][0],
result2:results[1][0]
});
}
else{
res.render('error.ejs',{});
}
})
})
現在的問題這種模式是我必須遵循選擇從多個表什麼的這種模式,通過所有這些功能的許諾,而當結果是傳遞回去,把所有這些結果對象的視圖轉到我的視圖中 - 這樣我就可以在我的視圖中使用它們 - 作爲相互依賴的下拉方式。
有時我必須重複多次寫這個。
做這樣的選擇查詢將是性能密集型,尤其是如果所有視圖都使用相同查詢的結果。
有什麼辦法,我可以建立在我的Express服務器端代碼和查詢緩存的數據存儲,而不是實際的數據庫?
如果有插入或更新 - 我將刷新這個店,只是做一個新的選擇*那一次。
什麼庫在快遞上面會幫我做到這一點?
mysql-cache是否做同樣的事情?我還使用createPool使用連接池。
如何做到這一點 - 或者我只是恢復到使用大MVC的像船帆重寫我的應用程序?