我正在编写一个快速应用程序,我将数据从我的视图推送到数据库。但是大部分数据都映射到数据库表中的一些其他数据。
例如,是一个选择学生姓名下拉列表 - 一旦你选择了学生的名字,下面的下拉列表 - 将显示他被允许担任的所有角色。
所以我遵循这种模式
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 来重写我的应用程序?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句