问题标签 [koa-router]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 定义带有前缀的 koa-router 嵌套路由
我正在尝试使用来定义不同的路线,koa-router
并且我正在度过一段愉快的时光。
像这样的东西:
根据此处的文档,我希望在中间件运行之后,请求应该/api/widgets/*
进入各自的中间件: https ://github.com/alexmingoia/koa-router#nested-routersbodyParser
authorizeMiddleware
但相反,我为所有这些路线获得了 404。我究竟做错了什么?
node.js - 405 koa-router 中不允许的方法
使用 POSTMAN 使用 PUT 和 DELETE 请求时,我收到 405 Method Not Found 作为响应。我的app.js
文件看起来像这样
我的./routes/users
文件看起来像这样
此外,当我检查 POSTMAN 中的响应标头部分时,它显示
我还尝试了互联网和 git 问题上所有可能的解决方案,但仍然没有用请帮我解决这个问题。
javascript - koa-router 中重复组的正则表达式未按预期工作
我想用逗号分隔列表调用端点,假设我想用例如“hey,you”或“hey,you,abc”调用
如果我打电话给
它正在使用以下路线:
但是这条路线不起作用:
我希望这个
(,[az]{3})*
允许使用 , 和 3 个字符的重复子组。
我究竟做错了什么?
node.js - Koa-router 在到达路由之前获取解析的参数
我正在使用 koa2 和 koa-router 以及顶部的 sequelize。我希望能够根据他们在数据库中的角色来控制用户访问,并且到目前为止它一直在工作。我做了自己的 RBAC 实现,但遇到了一些麻烦。
如果用户无权访问,我需要在命中任何端点之前退出执行,考虑到端点可以执行任何操作(例如插入新项目等)。这很有意义,我意识到我可能会使用 Sequelize 的事务,但我发现这会增加更多开销并且截止日期即将到来。
到目前为止,我的实现看起来有点像以下:
服务器中间件在路由之后注册。
routes_init 只是运行一个递归解析文件夹并导入所有中间件定义的函数。
这只是普通的 koa-router。
但是,问题出现在 access_control 中。
我有一个文件(access_control_definitions.js),我在其中指定命名路由、它们各自的续集模型名称以及路由存在的规则。(例如,什么角色,如果所有者能够访问他们自己的资源...) 我通过路由参数计算请求者是否拥有资源(例如资源ID 是ctx.params.id
)。然而,在这个实现中,params 似乎没有被解析。我认为我必须在 koa-router 之前手动解析参数是不对的。有没有人能够基于此确定一种更好的方法来解决ctx.params
未填充实际命名参数的问题?
编辑:我还为此创建了一个 GitHub 问题,考虑到在我看来似乎有一些有趣的事情正在发生。
node.js - Koa-router 忽略 Mongoose 的 async/await 并始终返回 404
这是路线的代码。当我使用 commentedPromise
时,它在正文中返回 123。但是使用猫鼬查询它会返回 404 状态。日志中的项目发现良好。但似乎路由器只是忽略等待并立即返回 404。我究竟做错了什么?
在 console.log 输出一切都很好,但404 Not Found
像默认的 koa 响应一样抛出:
typescript - Koa 和路由控制器的错误处理
我正在寻找使用库routing-controllers时通用错误处理的解决方案。
我的自定义错误处理应该能够捕获Promise
来自 的任何被拒绝的 s,从中Controller
构建响应主体并根据响应上的错误类型设置 HTTP 代码。我不喜欢 Koa 默认的错误处理,因为我想吐出我的自定义响应正文(不是堆栈跟踪等......)。
在示例中描述的简单设置中,通过传递Controller
应用程序的初始化,不再可能使用Koa wiki中描述的 Koa 错误处理。
详细地说,我将应用程序设置为:
并尝试通过以下方式添加错误处理程序:
我不确定我做错了什么,或者这两种方法不兼容。如果是后者:是否有人对概述的问题有解决方案?
node.js - 在 koa-router 中返回“未找到”
在 app.js 中,我有一些如下代码
我尝试访问localhost:3000/en
,它会返回错误Not Found
,请帮助我。
javascript - 为什么“koa-static”中间件不断返回 404?
我正在使用 koa-static 来尝试 Koa。但是404 (Body: Not Found)
在使用多级包含关系时它会不断返回。我不知道原因。
要重现,
- Windows 10 x64,节点 v9.11.1
- koa v2.5.1、koa-compose v4.1.0、koa-static v4.0.3、koa-send v4.1.3
目录:
index.html index.js 站点/sites.js 站点/onesite/index.js
索引.html
index.js
网站/sites.js
站点/onesite/index.js
jwt - 将 koa-jwt 与 koa-router 一起使用
我正在使用koa
,koa-router
和实现 Nextjs 服务kow-jwt
,但我对它们的路由设置感到困惑。
我的项目有 2 个页面,一个是仪表板,另一个是登录。仪表板需要通过验证,登录不。如果身份验证失败,则将用户重定向到登录页面。
我在互联网上搜索,发现了一些示例如下,没有一个将它们链接在一起。
请给我一些建议,让他们一起工作。
使用上面的代码,行为是
- 如果我链接到带有和不带有 jwt 令牌的仪表板,它总是重定向到登录页面。
- 如果我从菜单链接到仪表板(
<Link>
在 Nextjs 中实现),它会显示仪表板的内容。
谢谢您的帮助。
javascript - 路由中带有可选字符的 Koa-router
我正在尝试创建一个对不同前缀具有相同作用的路由:对于同一组路由具有多个前缀的 koa-router:
这两种方法完全相同,为了方便用户,给出了两次。
在 Express 中,获得它很容易,因为这?
将是s
可选的:
在 Koa 中,这是无效的。
我尝试使用以下两个选项创建子路由器:
但这实际上会注册:
替换.use
为.get
将忽略router.routes()
并在/player
没有. 的情况下注册:id
。
有没有办法在不创建两个单独的路由器的情况下实现一个接受不同路由的路由器?