比如一个请求的URL在我的路由里没有匹配的
koa-router会自动返回Not Found
那么我想返回一个统一的404页,该怎么做,在哪里拦截
我使用的ejs模板
在正常路由之后放一个输出 404 的路由 … 没找到 Handler 不就是 Not Found 么
@magicdawn 我的意思是指定一个自己写好的静态的ejs 谢谢回答
可以参考这段代码: https://github.com/superalsrk/koa2-boilerplate/blob/master/src/routes/index.js 设置一个default router, 该路由返回404, 返回自定义页面的话可以加个模板引擎, 更简单暴力的方法是直接fs读文件流并返回
ctx.type = 'html’ ctx.body = require(‘fs’).createReadStream(__dirname + ‘/…/public/main.html’)
你都有controller了, 是输出 html 还是 json 不是随你么…
// 404
app.use(async (ctx) => {
ctx.status = 404
await ctx.render('common/404')
})
@magicdawn 我会输出 就是不知道在哪输出0.0
@superalsrk @eyblog @magicdawn 谢谢 我现在知道怎么做了 在所有的路由都没有匹配之后,直接设置状态为404,并且返回我的404页面 如果前面有匹配的就轮不到它返回404了,直接会返回相应的页面