javascript - koa 使用redirect跳轉(zhuǎn)不起作用,求大神看看是為什么
問題描述
//這是koa啟動(dòng)文件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(’服務(wù)器已開啟,端口9999,瀏覽器中打開:localhost:9999’);
});
//這是index文件,index中使用了router.redirect方法var router = require(’koa-router’)();
router.get(’/’, function() {
console.log(’確實(shí)已經(jīng)進(jìn)來了’);try { router.redirect(’’, ’view/login/login.html’);} catch (error) { console.log(error);}
});
module.exports = router;
運(yùn)行時(shí),頁面輸入localhost:9999,控制臺(tái)確實(shí)打出“確實(shí)已經(jīng)進(jìn)來了”,但是頁面就是不跳轉(zhuǎn),這到底是為什么??幫幫忙。小白正在學(xué)koa!
問題解答
回答1:我寫express時(shí)踩過這樣的坑,當(dāng)時(shí)好像是因?yàn)閘isten沒有end。所以程序就一直在掛著。
你在redirect后加個(gè)router.end() //koa應(yīng)該有這樣的方法
回答2:這個(gè)問題的原因是對(duì)router.redirect()方法理解不夠的原因所致。真正的使用方法是:
router.redirect(’back’,url)
’back’其實(shí)是一個(gè)特殊的標(biāo)識(shí)符,代表了Referrer。第二個(gè)參數(shù)才是跳轉(zhuǎn)的新URL。
