[英]koa-router 404 on node.js
平台節點:v-4.4.5 koa:v-2.0.0 koa-router:v-7.0.0
這是我的代碼
///<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...');
當我瀏覽http:// localhost:3000 /時,輸出 “無效的URL !!!”。 告訴我為什么不能匹配“ /”路由器? 謝謝!
您可以使用“ *”來匹配404之類的網址或無效鏈接:
router.all('*', function(ctx, next) {
//
});
將您的節點版本升級到7.6.0。 koa2在> = 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...');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.