nextjs的路由和koa

nextjs的路由和koa,第1张

这边有一点是需要认识到的就是,koa和next之间的结合,正常来说我们在使用nextjs的时候,已经被提供了一个server足以让整个next项目运行期俩,那么为什么我们还要引入koa?

因为我们需要解决一些问题:

动态路由:比如: www.xxxx.com/a/1 一但刷新,那么就意味着404的错误会发生,

但是这个是make sense的,因为page里面本来就没有a/1这个文件

所以这里我们就要koa来作为中间件来帮助我们解决这个问题

'''

router.get('/a/:id', async (ctx) =>{

const id = ctx.params.id

await handler(ctx.req, ctx.res, {

pathname:'/a',

query: {id}

})

ctx.response = false

})

server.use(router.routes())

'''

上面的这段koa就会帮助我们

当访问了/a/id, koa的服务器就会辅助我们把router里面的事情在做一遍,这样就能帮助整个系统来找到这个动态的路径

use的设计其实是用于插入中间件的,处理一些通用的行为比如管理session。当然直接响应请求也是允许的。

但是对于业务比较复杂的场景,直接在这个地方响应请求的话后期会比较难维护。一般对于请求还是用 koa-router 分路由用不同的模块处理。这也是目前web框架的主流做法。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/118664.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-13
下一篇2023-03-13

发表评论

登录后才能评论

评论列表(0条)

    保存