问题标签 [skipper]

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.

0 投票
1 回答
133 浏览

node.js - 帆队长 0.5.8 超时/冻结

我在用 :

  • 帆 0.11.2
  • 船长 0.5.8
  • jQuery文件上传

当我尝试在本地机器节点服务器上上传大文件时,它工作正常(我已经将 maxBytes 的值更改为适当的大小)。但是在等待大约一分钟后,将相同的文件上传到远程服务器

我收到此错误:

0 投票
1 回答
378 浏览

sails.js - Sails.js 为特定路径更改 bodyParser

在 Sails.js 0.10.5 中,我想将 bodyParser 替换为特定路径。例如,对路径“/app/upload”使用不同的正文解析器,其余的使用默认值。我该怎么做呢?

0 投票
0 回答
511 浏览

sails.js - 使用 Sailsjs Skipper 文件上传与 Flowjs

我正在尝试将skipper和 flowjs 与 ng-flow 一起用于大文件上传。

基于flowjs 存储库中的 Nodejs示例,我创建了我的sails 控制器和服务来处理文件上传。当我上传一个小文件时它工作正常,但如果我尝试上传更大的文件(例如 200 Mb 的视频),我收到错误(如下所列)并且数组req.file('file')._files为空。有趣的事实是它在上传过程中只发生了几次。例如,如果 flowjs 将文件切割为 150 个块,在sails 控制台中,这些错误只会出现 3-5 次。因此,几乎所有的块都会上传到服务器,但有一些会丢失并导致文件损坏。

所有 flowjs 参数都会出现这些错误。

我知道必须首先发送文本参数才能与船长正确工作。在 chrome 网络控制台中,我检查了 flowjs 是否以正确的顺序发送了这些数据。

有什么建议么?

控制器方法

服务发布方式

编辑

找到了设置 flowjs 属性的解决方案maxChunkRetries: 5,因为默认情况下它是0. 在服务器端,如果req.file('file')._files为空,我将抛出非永久(在 flowjs 的上下文中)错误。

所以,它解决了我的问题,但质疑为什么它的行为仍然是开放的。flowjs 和 Nodejs 的示例代码使用connect-multiparty并且没有任何额外的错误处理代码,因此很可能是 skipper bodyparser 错误。

0 投票
0 回答
469 浏览

amazon-s3 - 如何使用 $http 使用 ajax 发送 base64 字符串音频/ogg 以使用 s3-skipper 上传文件

我有一个风帆应用程序。所以在后端我有节点 js 服务器,在前端我有一个角度 js 应用程序。

我想从前端上传一些文件到 s3。因此,为此我在后端使用 s3-skipper。

所以在前端我有

然后使用 skipper 在 s3 中上传文件,我在后端访问文件流:

整个过程完美无缺。现在,当我从浏览器录制音频文件并且我想使用相同的 s3-skipper 将文件上传到 s3 时,我有另一种情况。

但在这种情况下,出于显而易见的原因,我没有任何 html 表单元素和输入类型文件。对于音频文件,我有 base64 音频 dataUrl:

由于我不能使用表单提交,我想使用 $http 发送数据。所以我在做什么: -

发送请求后,我可以看到浏览器网络中正在发送一些数据。

但在后端,这就是我得到的 req.file("file"):

那么,任何人都可以在这里帮助我如何正确上传文件吗?

0 投票
1 回答
229 浏览

node.js - Sails.js 中的部分 POSTED 数据(不时)

我有一个生产服务器(ubuntu),用户填写并发送表单(多部分),以创建或更新记录。现在有时当我尝试使用时,req.allParams()我会得到一个数据不完整的对象。

可以说这是我通常得到的:

但有时我会得到:

我检查了表单并且它们是正确的,所以唯一明显的是只有最后一个键(表单字段)丢失了,所以我假设它可能与某些 POST 超时有关?

为了清楚起见,这就是我获取数据的方式,在我完成任何格式化之前,甚至登录sails/node_modules/skipper/index.js

不时显示部分信息。我还没有在我的本地机器上看到这种行为,但正如我所说,这种情况很少见,比如每 30 次发生 1 次,但对于客户端丢失发送的数据来说仍然是灾难性的。

这似乎是帆、快车或船长的问题。

我已经尝试调试了几天,这是我得到的最接近的结果,因为一开始我不知道它发生的原因或时间,现在我知道表单发送正确,但航行要么接收不完整,要么解析不正确。

有没有人遇到过类似的问题?任何导致解决此问题的想法都是最受欢迎的。

版本:

  • 节点 0.12
  • 帆 0.11.3

注意:无论是否上传文件都会发生这种情况

编辑:通过使用网络管理器(NetBalancer),我尝试将上传速度尽可能降低 1 字节/秒,但我没有得到奇怪的行为,所以似乎与慢速网络上传无关,至少从手动测试来看,我也不确定 NetBalancer 有多可靠。

更新: 将风帆更新到 0.12.1,将节点更新到 5.8.0,但问题仍然存在。

谢谢

0 投票
1 回答
265 浏览

node.js - Kurento - Sailsjs 通信:意外的令牌

从 Sailsjs 和 Kurento(本地,在 Docker 实例上)连接 Socket.io 实例时,我遇到了一些麻烦。

当我尝试使用此代码(在 Sailsjs 服务上)连接到 Kurento 时:

我在控制台上收到此错误(从未调用回调):

我知道在解析来自 Kurento 服务器的响应时存在问题(可能是编码问题),但我无法弄清楚该响应是在哪里解析的(Sails 的正文解析器?)。

当我运行教程示例时,它可以正常运行,但不能使用 Sails。

有人遇到过同样的问题吗?

0 投票
1 回答
1169 浏览

node.js - Sails JS文件上传;如何检查文件是否是输入?

我正在使用 Sails JS v11.05。

文件上传不是必填字段。

如何检查文件是否已上传?

通常,我使用

我只想知道一个文件是否是输入,所以如果它没有上传,我就懒得调用 req.file('file').upload() 。

想法?

0 投票
1 回答
292 浏览

node.js - 使用 skipper (sails.js) 处理中间件中具有不同未知输入字段名称的文件

我正在尝试从具有来自不同输入名称的多个图像文件的提交表单上传文件。

例如,假设一个包含文本输入和文件输入的多部分表单,并且将所有具有相同名称的文件输入分组是不切实际的,例如images[]

我想创建一个 express/sails 中间件来处理上传,所以我可以直接在我的控制器上访问它们。

如果我这样做(假设 req.file() 上的上传方法被承诺)

这将引发错误: EMAXBUFFER: An Upstream (images-1 ) timed out before it was plugged into a receiver. It was still unused after waiting 9500ms. You can configure this timeout by changing themaxTimeToBufferoption.

maxTimeToBuffer即使在船长模块本身上,我是否将其增加到 30000 也没关系。

由于尝试以顺序方式处理每个文件无论如何都会引发错误,因此只要我知道输入字段名称,就可以并行处理它们。

现在的问题是,我如何在最后一个片段上实现相同的目标,但事先不知道输入字段。像这样的东西

问题是req._fileparser.upstreams每次接收到新流时都会更新,并且只会在第一个图像被完全接收(顺序)之后发生,但如果我等待上游数组完成,我也会收到超时错误。

有什么解决方法吗?

我知道有很多东西要消化,如果您需要进一步澄清,请告诉我。任何想法表示赞赏

0 投票
1 回答
74 浏览

sails.js - Sails 船长无声无息地失败了

使用从docs复制和粘贴的代码,上传不会引发任何错误(事实证明,如果出现错误,它将返回 500 的 HTTP 状态以及错误消息)。

但是,uploadedFiles最终长度为 0。

我正在使用本地磁盘适配器。

对可能出现的问题有任何猜测吗?

0 投票
1 回答
475 浏览

file-upload - Sails Skipper:如何在上传期间读取和验证 csv 文件并排除无效文件类型?

我正在尝试编写一个将文件上传到 S3 位置的控制器。但是,在上传之前,我需要验证传入的文件类型是否为 csv。然后我需要读取文件以检查文件中的标题列等。我得到了文件的类型,如下所示:

但是,如何读取整个文件流并检查文件头和数据等?还有其他类似的问题,如(Sails.js Skipper:如何在上传过程中读取上传的文件流?)。但是提到的解决方案是使用 skipper-csv 适配器(我不能使用它,因为我已经使用 skipper-s3 上传到 s3)。

有人可以发布一个关于如何阅读上游并在上传之前执行任何验证的示例吗?