1
據我所知RoR中,MVC的概念,我的控制器應該從模型和HANDELING它之後的結果和渲染視圖,像這樣:如何在Express中將pg-promise的結果返回給我的控制器?
def index
@movies = Movie.all
if params[:title] || params[:director]
@movies = Movie.search(params)
end
end
現在我有一個Express服務器,我嘗試以MVC方式構建它,使用PostgreSQL(pg-promise)和jade。
目前,我有一個控制器文件,如下代碼:
//Get home page
var router = express.Router();
router.get('/', function(req, res, next) {
Movies.all(res);
});
而且在我的模型,我有一個全功能處理:
exports.all = function(res){
var result = db.query('select * from movies').
then(function (data) {
// success;
res.render('index',{title: 'Rotten Mango', movies: data});
})
.catch(function (error) {
// error;
console.log('error !')
});
};
但我想什麼做的是將Movies.all的數據庫查詢結果返回給我的控制器,就像我們通常在RoR或典型的MVC方式中那樣。我想的東西會是這樣的:
//Get home page
var router = express.Router();
router.get('/', function(req, res, next) {
// This code will return the JSON result and render into the view page
res.render('index', Movies.all);
});
但因爲這將返回引起異步的承諾或(我不知道),所以我不能做到這一點,我該怎麼辦?
感謝西蒙!這有助於我弄清楚!有時候只需要用其他方式來思考。 – TotoLai