javascript - koa 使用redirect跳转不起作用,求大神看看是为什么
问题描述
//这是koa启动文件var koa = require(’koa’);var path = require(’path’);var router = require(’koa-router’)();var server = require(’koa-static’);
var datas = require(’./app/router/datas’);var index = require(’./app/router/index’);
var app = new koa();
app.use(server(path.join(__dirname, ’app’)));
router.use(’/’,index.routes());router.use(’/datas’,datas.routes());
app.use(router.routes());
app.on(’error’, function(err,ctx){
console.log(err);
});
app.listen(9999,function(){
console.log(’服务器已开启,端口9999,浏览器中打开:localhost:9999’);
});
//这是index文件,index中使用了router.redirect方法var router = require(’koa-router’)();
router.get(’/’, function() {
console.log(’确实已经进来了’);try { router.redirect(’’, ’view/login/login.html’);} catch (error) { console.log(error);}
});
module.exports = router;
运行时,页面输入localhost:9999,控制台确实打出“确实已经进来了”,但是页面就是不跳转,这到底是为什么??帮帮忙。小白正在学koa!
问题解答
回答1:我写express时踩过这样的坑,当时好像是因为listen没有end。所以程序就一直在挂着。
你在redirect后加个router.end() //koa应该有这样的方法
回答2:这个问题的原因是对router.redirect()方法理解不够的原因所致。真正的使用方法是:
router.redirect(’back’,url)
’back’其实是一个特殊的标识符,代表了Referrer。第二个参数才是跳转的新URL。