示例
var koa = require('koa');
var router = require('koa-router');
var app = new koa();
var _router = router(); //实例化路由器
_router.get('/not_found', async (ctx)=>{ //定义路由
ctx.status = 404;
ctx.body = "抱歉,我们没有此资源。";
});
_router.get('/hello', async (ctx)=>{ //定义路由
ctx.status = 200;
ctx.body = 'hello world';
});
async function handle404Errors(next) {
if (404 != this.status) return;
this.redirect('/not_found');
}
app.use(_router.routes()); //使用路由器定义的路由
app.use(handle404Errors);
app.listen(3001);
当我们运行此代码并导航到 /hello 以外的任何路径时,我们将被重定向到 /not_found。我们把中间件放在最后(应用程序使用此中间件的函数调用)。这确保我们最终到达中间件并发送相应的响应。下面是我们运行上述代码时看到的结果。
当我们导航到 http://localhost:3001/hello,我们得到-
如果我们导航到其他路线,我们得到-