问题标签 [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.
koa - 带有 koa2 的 REST API。多个路由器的公共前缀
我有两个实体,用户和员工。所以我想在不同的端点上都使用 CRUD,但它们都将安装在“api”下,所以我可以定义 api_v1、api_v2 等等。端点将类似于:
我的两条路线都无法获得“api”前缀。无法让它与 koa-mount 一起使用。
我的文件:
服务器.js
users.js (employees.js 也一样)。
mongoose - 猫鼬 findbyId 内部错误
我正在使用 Koa 2 和 koa-router。
路由器文件:
如果我转到 url http://localhost:3000/api/users/得到结果是好的:
但是,如果我在浏览器中执行 get by idhttp://localhost:3000/api/users/56bc57c48cc9e78b4ce61206
没有任何反应,也没有错误。浏览器只是加载我之前的网页。
如果我将 id 更改为一个不存在的 id,我会在浏览器中收到内部错误。它在终端中显示:
javascript - 如何跳过或跳转中间件?(节点)
给定两个中间件,你怎么能先添加一些会被命中的东西,然后确定将请求传递到哪个中间件。该请求只能被丢弃或转发到其中一个中间件,而不能同时发送。
更具体地说:
我有一个主页/
,它应该有一个可变的响应,具体取决于用户是否登录(在此处使用基于令牌的身份验证)。为简单起见,如果请求用户没有令牌,则public.html
响应private.html
带有有效令牌的请求。
现在这很容易在一个函数中实现,但我希望有分离的路由器,这样可以使代码更易于管理。
所以我需要以某种方式能够选择请求发送到哪个中间件路由器?不知道该怎么做。
get - 如何在 koa 中处理 GET 数据
我是 koa 的新手,我正在使用 koa-router。对我来说,代码是这样的:
然后我访问 localhost:3000/user/test?p=1&q=2,我只是发现我似乎没有办法获得 p 和 q 的值。那么如何快速获得价值呢?
javascript - Koa路由器。需要留在页面上。阿贾克斯?如何?
路由器的代码块如下:
我需要在保持在同一页面上(不重新加载页面)的同时通过发布请求向数据库发送一些数据。如果我使用“this.body ...”行,页面会重新加载。不使用它会显示“未找到”(这是合乎逻辑的)。如何执行 AJAX 之类的操作,以便将数据异步发送到 DB 而不是重新加载页面?
javascript - 使用 supertest 测试 koa 路由时,内容类型标头始终相同
我有一个使用koa
和构建的应用程序koa-router
。当supertest
我遇到问题测试路由时,该content-type
响应标头始终为application/json; charset=utf-8
.
测试如何失败:
错误:预期为“image/png”的“Content-Type”,在 Test._assertFunction 的 Test._assertHeader (node_modules/supertest/lib/test.js:215:12) 处得到“application/json; charset=utf-8” (node_modules/supertest/lib/test.js:247:11) 在 Test.assert (node_modules/supertest/lib/test.js:148:18) 在 Server.assert (node_modules/supertest/lib/test.js:127 :12) 在 emitCloseNT (net.js:1525:8)
通过以下方式记录的内容console.log(res.res.headers)
:
但是,如果我从浏览器向提供的路由发出请求,则content-type
标头会正确更改:
既不this.set('Content-Type', 'image/png');
也不 this.set('content-type', 'image/png');
改变情况。
它是一个错误吗?有没有人遇到过同样的问题?
koa - 如何创建带有数字的 KOA 路径?
我有一个 KOA 端点。我有一个quantify
只能接受数字的参数,如何直接在 KOA 路由器中强制执行?
regex - 如何管理有或没有 URL 的 URL?和 /
在我的 Koa 应用程序中,我有这种路由器:
我的问题是:
- mydomain.com
- mydomain.com/
- mydomain.com?
由同一路线路由。它可能很棒,但对于谷歌来说却不是。说它是重复的内容。所以我想将第一个和第三个重定向到第二个。就像这样:
尝试了一些正则表达式但没有成功。已经打开了 Github 问题但也没有答案:https ://github.com/alexmingoia/koa-router/issues/251 。
在此先感谢您的帮助 :)
node.js - 如何在 Promise 中设置 body?
在下面的代码中,我希望以某种方式更改的注释部分应该能够设置文档的正文而不是“this.body = 'test';” (它仍然应该是 Promise 解决方案)。
问题是 Promise 中的“this”不是指“正确的”。
javascript - 使用 koa2 和 koa-router 获取 204 用于 REST api - 响应正文未通过
我来自 Express 并试图为我正在从事的一个新项目学习 Koa2,但我正在努力让最基本的 Get 操作为我的应用程序工作。
在服务器端,我有一个访问授权服务器 (Etrade) 的路由设置,它返回一个 HTML 链接,用户需要使用该链接来授权应用程序。
我可以使用 Postman 访问路由,并看到我通过调用从 Etrade 获得了链接console.log()
,但它没有在响应正文中返回给 Postman。
当我将它连接到客户端应用程序时,我得到一个响应状态代码 204,这意味着如果我正确理解的话,我的响应正文是空的。
我需要弄清楚如何让响应体传递以及提高我对 Koa2 的理解。
我目前的设置server.js
如下:
我router.js
的设置如下:
最后是路线的逻辑,减去关键和秘密的东西:
感谢您的帮助和指导!