Tag: koa

热模块重新加载是使初始页面请求10-20s,与Webpack,Koa,Vue.js

出于某种原因,大多数页面刷新重新请求bundle.js文件,它需要大约10-15-20秒从本地主机下载。 这一切都来自localhost,bundle.js文件大小约为1mb。 这个文件的请求似乎只是爬行,一次加载几千字节。 一些观察: 经过一番挖掘,似乎在从__webpack_hmr到服务器的初始调用中停顿,但是我不确定在调用bundle.js之后发生了这个调用。 以下是服务器请求stream的日志。 在只有一个或两个组件的页面上, 除了主页以外的任何东西。 这暗示着它可能与热模块重装有关。 与其他页面一样,首页仍然会花费5秒以上(有时10-20),但如果使用Ctrl + R刷新页面,则会立即返回。 如果我进行地址栏刷新,则需要更长的时间。 其他页面仍然需要一样长的时间,无论我按Ctrl + R或做一个地址栏重新加载… 更新 :我删除了热门的模块replace,而且它似乎是问题的来源,因为没有它的网页加载即时。 请求日志: – 响应时间GET / = 609ms – > GET / 200 647ms 2.55kb < – GET /main.aafc9fb7f6a0c7f127edb04734d29547.css – > GET /main.aafc9fb7f6a0c7f127edb04734d29547.css 200 17ms 3.43kb < – /bundle.js – > GET /bundle.js 200 18ms 1.29mb < – GET […]

使用节点v6.x和pm2导致koa-ejs一个错误

当我使用节点v6.x和pm2来启动服务时,会出现一个错误: TypeError: Iterator result <!DOCTYPE html> …. </html> is not an object at Object.app.context.render (/Users/…./project/node_modules/koa-ejs/index.js:98:23) at next (native) at onFulfilled (/Users/…./project/node_modules/co/index.js:65:19) 但在这些情况下,我不会得到这个错误: 与pm2节点v4.x 没有pm2的节点v6.x 我不知道是什么原因导致这个bug

多部分file upload问题

我有一个Koa应用程序,它有一个突然停止工作的multipart/form-datafile upload。 我花了8个多小时试图找出问题。 我试过/validation过的: 不是节点6的问题; 节点4(之前的工作)也出现同样的问题。 在packages.json排除了版本问题; 已经对所有相关软件包和最新版本的原始版本进行了testing。 在最新的Chrome和最新的Firefox中发布展品。 问题不会展示,直接从邮递员发送与浏览器发送完全相同的标题 (除了Cookie和Referer ,两者都不能在Postman中设置)。 与Koa包装koa更好的身体和koa垂体问题展品。 直接使用公务员 , 强大 ,甚至是多党的问题展品。 类似于人们在这个垂涎问题上的问题 。 尝试了所有build议(包括在文件参数之前添加字段参数的远景)无济于事。 试图重新创build最小的testing用例,但一直无法。 已经尝试逐行削减我的应用程序,检查巴贝尔输出对最小的testing用例,直到他们在function上相同,问题仍然存在于我的应用程序,但不是在testing的情况下。 所有testing运行在同一台服务器上,使用相同的浏览器。 在debugging的时候,这个问题的最清晰的视angular是在incoming_form.js强大的。 发生单个data事件: 然后一个abort事件: 之后,浏览器最终超时。 (该文件大于在第一个data事件中收到的15个字节。) 我曾经希望通过从formidabl转到busboy来快速解决问题,现在我是一个真正的约束者,因为这个问题需要得到解决,而我正在想办法解决这个问题。 我试图用我能想到的所有方式进行分割,按照我能想到的方式进行debugging,并且没有编写自己的多分析器(不是我会津津乐道的任务),我很快就没有办法了。 有没有人跑过这个? 你有什么想法如何进行debugging或产生一个最小的testing案例?

与koa路由器的多个中间件:“yield next”或“yield * next”?

有了koa-router ,在实现多个中间件的时候 ,为什么我不能yield* next ,而只是yield next , next是发生器呢? koa似乎在使用co , 经过一番捣乱之后 ,似乎是感谢了,但是谁能证实呢? yield* next使用yield* next有什么缺点,即使yield next就足够了? 我觉得它不太容易出错(至less对未来的开发者来说)。 可以帮助(虽然我没有完全得到发生的事情): https://github.com/alexmingoia/koa-router/blob/5.x/lib/router.js#L327 https://github.com/alexmingoia/koa-router/blob/5.x/lib/router.js#L336

如何testing自定义Koa中间件的error handling?

作为从ExpressJs到Koa JS(v1)的旧应用程序迁移的一部分。 我写了一个中间件来处理发生的任何错误。 它看起来像这样: module.errors = function * (next) { try { yield next; } catch (err) { switch(err && err.message) { case: 'Bad Request': this.status = 400; this.body = {message: 'Bad Request'}; brea; default: this.status = 500; this.body = {message: 'An error has occurred'}; } this.app.emit('error', err, this); } } 它被包含在我的应用程序中,如下所示: const app = […]

奇怪的ECONNRESET错误我无法弄清楚

我不知道,如果这是关于koa,或者是一些其他npm模块或别的东西的问题。 我要从这里开始。 如果这是错误的地方,我会把它移到适当的地方。 我只需要把它写在某个地方,因为它让我发疯。 所以这个问题。 我正在用koa v1编写REST api。 我们在Docker镜像中运行节点服务器。 我们有一个端点,开始导入并返回状态200,并带有消息“import started”,当导入完成时,我们发送Slack消息来通知我们。 所以首先我testing了本地机器上的服务器,一切正常(端点不会引发任何错误)。 然后我build立了docker形象。 我运行容器localy,一切正常(端点不会引发任何错误)。 我把我的图像部署到Mesos环境,一切工作到目前为止。 容器运行,每个端点工作,除了导入端点。 当我调用它,几秒钟后(5到10),我得到ECONNRESET错误,正在运行的容器被杀死,新的运行实例被启动。 所以导入被终止。 一开始,我们为docker容器分配了128MB内存,这似乎足够了。 导入错误发生后,我们以为OOM可能会杀死进程。 所以我们决定检查dmesg,找不到与OOM相关的日志条目和正在运行的容器的进程。 然后我们检查了localy容器的ram使用情况(用htop),发现它使用了aprox。 250+ MB,所以我们决定在马拉松configuration中添加更多内存(512 MB)。 然而,这并没有帮助,同样的错误发生。 由于错误不够明确,我们安装了longjohn模块,所以我们可以得到更详细的错误信息。 这让我们获得了更多的信息,但是没有我们想象的那么多。 Error: read ECONNRESET at exports._errnoException (util.js:1026:11) at TCP.onread (net.js:569:26) ——————————————— at Application.app.callback (/src/node_modules/koa/lib/application.js:130:45) at Application.app.listen (/src/node_modules/koa/lib/application.js:73:39) at Promise.then.result (/src/server.js:97:13) Error: read ECONNRESET at exports._errnoException (util.js:1026:11) at TCP.onread […]

如何利用请求集成testingasynchronousKoa节点API

我正在使用Koa2和Request对第三方进行RESTful API调用来处理我的第一个真实世界的Node项目。 Koa服务本身是相对简单的,但我正在尝试使用Jest编写一个集成testing。 我已经find使用Supertest / Superagent的Jest的例子 ,但我无法find如何使用只有Jes​​t和Request作为http客户端编写等效testing。 下面是Jest / Supertest的例子 const request = require('supertest'); const app = require('../../src/app') describe('Test the root path', () => { test('It should response the GET method', async () => { const response = await request(app).get('/'); expect(response.statusCode).toBe(200); }); }) 似乎我应该可以使用请求做超supertest / superagent在这里做的相同的事情,但我找不到任何例子。 感谢您的build议!

处理102在Node.js中的状态(处理)

我从我的服务器(Node8.9.0LTS)发出一个请求到其他服务,我收到一个102 processing状态代码: const firstRes = await ajaxService.post('/data/search', params) <– issue a request with a timeout –> ctx.data = secondRes.response.data //return the response to the client ajaxService返回一个使用axios发出请求的asynchronous函数。 我如何编写代码发出相同的请求,间隔1秒,限制为5秒(所以我会返回超时到客户端)与asynchronous/等待?

如何为基于KOA的服务器生成API文档

我有一个基于KOA的服务器。 现在我想为服务器生成API文档。 有没有自动生成API文档的工具?

包括.js文件并尝试使用生成器

我通常知道发电机/承诺在单个发电机function时是如何工作的。 我有困难调用另一个发电机function内的发电机function。 实际上做这件事很less写。 该脚本似乎忽略等待用户从数据库返回并继续运行该脚本。 我该如何等待它完成? auth.js "use strict"; var config = require('./config'); var co = require('co'); // needed for generators var monk = require('monk'); var wrap = require('co-monk'); var db = monk(config.mongodb.url, config.mongodb.monk); // exists in app.js also var users = wrap(db.get('users')); // export? there is another instance in app.js var user = null; this.postSignIn […]