如何在koa项目中区分页面请求和api请求?
我的项目后端是koa
,前端是vue
的SPA。所有的页面请求我用koa-router
是这样配的:
router.get(/\/\.*/, async ctx => {
ctx.body = await ctx.render('app/index.html')
})
但是这样一来,所有的api请求也会返回index.html
顺便再问一个和koa-jwt
相关的问题,其实也是路径匹配的问题,因为我只有某些请求需要鉴权,像页面请求、静态资源和auth
相关的接口是不需要鉴权的,我现在是这样写的:
// jwt鉴权
app.use(koajwt({
secret: host
}).unless({
path: [/\/api\/admin\/auth/, /\/api\/auth/, /\/admin/, /\/server\/static/, /^$|^\/$/]
}))
我觉得在unless
里配那么一大段有点奇怪,想问下有什么更优雅的方法?
-------------------update-----------------------
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个是我自己写的 demo koa, 我用它 只起api和静态支持上传图片(这个其实也可以只让nginx去代理图片, 不让node去做静态资源相关的事情)。
...
你可已配置nginx 反向代理代理接口, 类似这种
把nginx 配置截下图。这么配置是 root F:webbacker\reactdist; try_files $uri $uri/ /index.html; 这么配置是 在 F:webbacker\reactdist 这个目录下, 有你静态 index.html,在没有其他配置的前提下,访问的url永远 是指向 index.html;应该是 这样的.
自己的网站 单页spa
根据 我自学nginx(菜鸟)
这个两个日志很重要。
api 代码的路由放到前面,最后这个中间件作为 fallback 就好了