koa2怎么指定404页?
发布于 5 个月前 作者 hezhongfeng 993 次浏览 最后一次编辑是 4 个月前 来自 问答

比如一个请求的URL在我的路由里没有匹配的 koa-router会自动返回Not Found 那么我想返回一个统一的404页,该怎么做,在哪里拦截 我使用的ejs模板

7 回复

在正常路由之后放一个输出 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’)

@hezhongfeng

你都有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了,直接会返回相应的页面

回到顶部