2015-11-10 5 views
0

Каков правильный способ перенаправления из вида keystone.js?Как перенаправить с точки зрения в 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.redirect('/somewhere-else), а затем вызвать next(), а затем вызвать next() с ненулевым параметром ошибки, или должно быть выполнено перенаправление где-то совсем другое?

Дополнительная информация: Я хотел бы, чтобы остановить обработку, потому что нет никаких причин, чтобы сделать производительность интенсивной обработки базы данных, следующих далее в очереди

ответ

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 
    } 

} 
+0

Эта тема также хорошо обсуждается здесь https://github.com/keystonejs/keystone/issues/303 с некоторыми другими советами по перенаправлений в KeystoneJS. – exmaxx

Смежные вопросы