2016-10-21 9 views
0

プラットフォーム ノード上の404:V-4.4.5 KOA:V-2.0.0-KOAルータ:V-7.0.0KOA-ルータのNode.js

ここでは私のコード

///<reference path="../typings/tsd.d.ts" /> 
 
//导入koa,和koa 1.x不同,在koa2中,我们导入的是一个class,因此用大写的Koa表示: 
 
var Koa = require('koa'); 
 

 
var router=require("koa-router")(); 
 

 

 
// 创建一个Koa对象表示web app本身: 
 
var app = new Koa(); 
 

 
// parse request body: 
 

 

 
//add url-route: 
 
router.get('/hello/:name', (ctx, next) => { 
 
    var name = ctx.params.name; 
 
    ctx.response.body =`<h1>Hello, ${name}!</h1>`; 
 
}); 
 

 
router.get('/', function *(ctx, next) { 
 
    ctx.response.body = '<h1>Index</h1>'; 
 
}); 
 

 
router.all('/login', function *() { 
 
    this.redirect('/'); 
 
    this.status = 301; 
 
}); 
 

 
app.use(function (ctx,next){ 
 
    this.body = `Invalid URL!!!${ctx.request.method} ${ctx.request.url}`; 
 
    ctx.response.type = 'text/html'; 
 
    ctx.response.body = this.body; 
 
}); 
 

 
app.use(router.routes()) 
 
.use(router.allowedMethods()); 
 
// 在端口3000监听: 
 
app.listen(3000); 
 
console.log('app started at port 3000...');
です

I Brower http://localhost:3000/,output「無効なURL !!!」。なぜ '/'ルータに一致しないのか教えてください。ありがとうございました!

答えて

0

ノードのバージョンを7.6.0にアップグレードします。

Koa=require('koa') 
    var app = new Koa(); 
    router = require('koa-router')() 
    // parse request body: 


    //add url-route: 
    router.get('/hello/:name', (ctx, next) => { 
     var name = ctx.params.name; 
     ctx.response.body =`<h1>Hello, ${name}!</h1>`; 
    }); 

    router.get('/', function (ctx, next) { 
     console.log(ctx.request); 
     ctx.body = '<h1>Index</h1>'; 
    }); 

    router.all('/login', function (ctx) { 
     ctx.redirect('/'); 
     ctx.status = 301; 
    }); 

    app.use(function (ctx,next){ 
     this.body = `Invalid URL!!!${ctx.request.method} ${ctx.request.url}`; 
     ctx.response.type = 'text/html'; 
     ctx.response.body = this.body; 
     next() 
    }); 

    app.use(router.routes()) 
    .use(router.allowedMethods()); 
    // 在端口3000监听: 
    app.listen(3000); 
    console.log('app started at port 3000...'); 
1

のような> = 7.6.0 とコードのkoa2仕事は、あなたは404個のまたは無効なリンクのようなURLを一致させるために '*' を使用することができます。

router.all('*', function(ctx, next) { 
    // 
}); 
関連する問題