如何从keystone.js中的视图重定向

时间:2015-11-10 20:33:24

标签: async.js keystonejs

在keystone.js视图中重定向的正确方法是什么?

我有这个用例:

//req, res are the express request and response objects defined earlier
view.on('init', function(next){
 if (req.params['should-be-else-where']='true'{
    // do some logging stuff 
    // redirect to somewhere else
  }
});

据我所知,view.on()函数中的下一个参数是async.js框架的回调,与(req,res,next)中间件无关。

我应该拨打res.redirect('/somewhere-else)然后拨打next(),然后使用非空错误参数调用next(),还是应该在完全不同的地方执行重定向?

其他信息:我想停止处理,因为没有理由在队列中稍后执行性能繁重的数据库处理

1 个答案:

答案 0 :(得分:1)

如果您不需要视图,但只有在满足条件时才重定向,您可以这样做:

module.exports = function (req, res, next) {

    if (req.params['should-be-else-where']) {
        // do some logging stuff 
        res.redirect('/somewhere-else');
    } else {
        var view = new keystone.View(req, res);
        // do something else then render the view
    }

}