问题标签 [koa2]
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.
reactjs - 使用 Koa2 提供静态文件
当有人访问路由时,如何使用 Koa2 提供静态文件?我尝试了数以百万计的东西,但我总是收到未找到的消息。服务器已响应状态 404
node.js - IntelliJ IDEA 找不到 KoaJS 方法
目前,IntelliJ IDEA 报告 KoaJS 的方法是未定义的。
有没有人在 KoaJS 中使用 intellij idea 并且 intellisense/code completion 正常工作?
javascript - React-router 和服务器端渲染
我想用 react-router 和 Koa 渲染服务器端。但是,如果我包含完整的节点构建,我只会让它工作。这是因为我的组件需要 sass 编译、图像处理等。
如果我的前端应用程序是预编译的,并且从那里获得渲染为字符串的路由及其相关页面,那就太好了。
现在我从 routes.js 文件中导入路由,该文件导出以下内容以及未编译的组件:
postgresql - ava js test GET 返回代码 204 POSTMAN GET 返回 200
我使用 koa js 2 和 postgres 数据库制作了一些 REST API 端点。
我有一个 setup/teardown 程序,它在运行任何测试之前创建/删除 postgres 数据库目录(例如 test_db)。(我使用 npm script 'pretest' hook 来做 db setup 和 'posttest' 来做 db teardown)。
当我运行 ava js 测试时,我有:
2 个 POST 测试(插入 2 行)- 这两个都通过
1 个 GET 测试(例如 get /users/1)- FAIL:响应代码是 204 而不是 200
1 个 PUT 测试(例如 POST /users/:id)- FAIL:响应代码是 204 而不是 200 。
我可以针对我的开发配置运行这些测试,它们都通过了
我不明白 POST 如何成功(将一行插入到表中),然后刚刚插入的行的 GET 返回 204(无数据)。
目前没有发生测试数据库拆卸,所以我可以查看测试数据库并验证 POSTS 确实成功,插入的行具有正确的 ID 值(如预期的那样)。(例如,我可以看到一个 id==1 的用户和一个 id==2 的用户)所以在执行测试时调用端点 /users/1 或 /users/2 应该会成功。
如果我使用测试数据库启动我的服务器,并针对这些端点和测试数据库运行 POSTMAN,一切正常(例如 GET /users/1 返回正确,GET /users/2 也是如此)我得到 json 返回和 200 的代码而不是 204。
我不明白为什么当对 POSTMAN 的相同调用返回代码 200 和有效的 json 响应时,我的 ava 测试会得到代码 204。
关于可能导致这种情况的任何想法?
node.js - 在 Koa v2 中,仅在服务器启动时一次性执行中间件
我创建了这个中间件,它只在网站中的任何路线受到访问者的第一次点击时执行一次:
此代码仅在用户访问网站时首次执行,结果:
我的问题是我想在服务器启动时执行它,当网站上没有任何访问时。
此代码的未来目的将是检查数据库中是否存在表。
解决方案:
./bin/www
在声明之前放置它const server = http.createServer(app.callback());
有助于:
typescript - 在 Typescript 中向 Koa2 的上下文添加属性
我想在 Typescript 中使用 Facebook 的 DataLoader 和 Koa2。我希望每个请求的 DataLoader 实例与我的每个请求的数据库连接一起使用。如何最好地做到这一点?
我目前的方法是增加 Koa2 上下文,但我失败了,因为我不知道如何修复类型定义。
这是我对模块扩充的尝试...
除了日志调用中显示的错误之外,Property 'dataLoader' does not exist on type 'BaseContext'
当我导入上述内容并尝试调用dataLoader
.
干杯
node.js - 在 Koa2 的根目录之外提供静态文件
我有一个使用 Koa2 的简单 NodeJS 服务器。它提供来自client
文件夹的静态文件。但是,有一个config.js
存在于client
文件夹之外。现在我的client/index.html
文件不能提供config.js
。
我试图通过添加一个应该服务于的路由器来解决这个问题config.js
,如下所示:
在client/index.html
我只是有一个script
包含。
但是浏览器说还是找不到config.js
。
如何在 Koa2 中完成这项工作?
google-app-engine - 在事务中获取实体的 id
我有一个数据存储事务,我在其中创建一个实体(用户),让数据存储为我生成 ID。
然后我想使用该 ID,以便我可以创建另一个实体(另一种)。
虽然使用常规数据存储“保存”api 可以做到这一点:
但是,在使用事务时这似乎是不可能的:
上面的输出“无法读取未定义的'then'”,即使文档中没有列出回调,我还是尝试了。
使用事务创建/保存实体时,如何检索该实体的自动生成 ID?
node.js - koa2+koa-router+mysql 不断返回“未找到”
背景
我正在使用 koa2 和一些中间件来构建一个基本的 api 框架。但是当我在路由器中使用“ctx.body”发送响应时,客户端总是收到“未找到”
我的代码
./app.js
./router/gateway.js
然后是一个数据库包装器(mysql)
./db/async-db.js
./db/data-fetcher.js
我的跑步结果
当我在端口 3000 上启动服务器然后通过http://localhost:3000/gateway?time=5访问时,它总是返回“未找到”。但正如我所见,我已经使用过
发送响应。调试了一下,发现数据库处理做得不错,新数据插入也不错。
当我删除该数据库插入行时,它运行良好并返回成功信息。
有什么问题吗?
非常感谢!
更新 2017/04/27
现在我发现了问题。这是由于我的自定义中间件
代码如下 -
我将其更改为异步/等待方式,然后一切正常。
谁能告诉我这个中间件有什么问题?
react-router - 如何从 React Route 强制基于浏览器导航的 GET?
我的 React 应用程序中有一个登录页面,用户可以选择本地登录或通过社交网络 OAuth2 服务登录,该服务passport.js
在基于 Koa 的 API 服务器上使用。
最初,我试图通过 ajax 调用后端,但似乎 OAuth2 服务器不允许我这样做,给我一个 CORS 错误,即使使用代理也是如此,所以我试图简单地Link
在社交登录按钮周围放置一个将to
属性添加到我的 API 后端 url,如下所示:
问题是当我单击按钮时,路由器拦截链接并尝试在该路径处呈现组件并设置浏览器位置(在导航栏中),但实际上并没有导致浏览器对资源执行 GET服务器——这导致我的通用 404 容器被渲染。我也尝试过使用普通的锚元素,但由于上述相同的原因而失败。
那么,我需要知道的是如何强制 React Router 忽略某个路径并允许浏览器对资源执行 GET?