如何从 keystone.js 中的视图重定向
how to redirect from a view in 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,next) 中间件无关。
我应该调用 res.redirect('/somewhere-else)
然后调用 next()
,然后使用非空错误参数调用 next()
,还是应该在完全不同的地方执行重定向?
其他信息:我想停止处理,因为没有理由在队列后面进行性能繁重的数据库处理
如果您不需要视图,而只是在满足条件时重定向,您可以这样做:
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
}
}
从 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()
,还是应该在完全不同的地方执行重定向?
其他信息:我想停止处理,因为没有理由在队列后面进行性能繁重的数据库处理
如果您不需要视图,而只是在满足条件时重定向,您可以这样做:
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
}
}