问题标签 [nodejs-stream]
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 - 使用 mock 对使用请求、管道和流的私有方法进行单元测试
我想在下面的代码中对导出的方法进行单元测试。我想模拟私有方法中的值来控制返回的 Promise 的拒绝/解析。client
是已经连接到数据库的node-postgres对象。
我知道我可以使用proxyquire来存根所需的库,但是如何模拟链接的方法,.on('error', ...)
以便我可以控制返回的值。.pipe(stream)
.on('end', ...)
请注意,显示的导出方法是对真实方法的简化,导出 importDomain 是不可行的。
node.js - 用于音频流的客户端 nodeJS 直通流
我们致力于一个流媒体实用程序,例如能够流式传输 Youtube 的音乐。
我们使用 YTDL 进行了第NodeJS
一次拍摄。一切都很好,除了流会从 Youtube 到我们的服务器,然后到客户端,我们想直接从 Youtube 到客户端。
为此我使用browserify
过YTDL
,所以现在我可以在客户端获得一个直通的nodeJS流,但是我无法看到如何在不使用nodeJS
类似方法的情况下使用它.pipe()
,也不知道如何获取流原始数据并将其写入临时 mp3 文件。
我知道这不是一个真正简单的方法,但这是我第一次做这样的事情而且我对这个问题不是很有经验,所以如果你有任何其他有效的方法,我会很乐意听他们的。
node.js - Node.js HTTP - TypeError:标头内容包含无效字符
我运行此代码,我收到以下错误:
无法弄清楚这个错误来自哪里。我听说这是在较新版本的 Node 中出于安全原因,但不知道如何绕过它。
node.js - process.stdout.write / process.stderr.write 猴子补丁在子进程中有效,但在父进程中无效
所以我有这个简单的猴子补丁process.stdout.write
/process.stderr.write
(对于 process.stderr,它是相同的,并且正在写入同一个流)。
问题:
当我运行这个过程时node x.js
流在关闭之前没有完成所有写入,甚至没有关闭。但是,如果我跑
现在子进程中运行的流将完成写入,并且日志文件现在已满。
为什么会这样?缺少 using fs.appendFileSync
,有没有办法确保在进程关闭之前流将耗尽?
编辑:
我想我知道它为什么会发生 - 我正在调用process.exit()
它会过早地关闭进程,并且可能会在流完成之前被调用。
有没有办法监听流何时完成写入?如果在我调用 process.exit() 时在流上调用 finish(),这似乎是人为的“完成”。我尝试等待“排水”事件,但它似乎永远不会触发。
node.js - Hapijs 将流转发到另一台服务器
我尝试通过流将图像上传到我的 Hapijs 服务器并将数据发送(管道)到另一个 Hapijs 实例。
所以我有这个帖子路由,它应该接收一个流并转发它:
我在另一台服务器上的路线如下所示:
当我运行代码时,我总是得到这个响应:
如何将流转发到另一个 hapijs 服务器(不保存临时文件)?
谢谢
javascript - 如何在客户端使用rest api?
您好,今天我有简单的代码 Nodejs 表达,可以作为 rest api 工作。当我使用邮递员将请求作为 get 方法发送时,它可以工作,如下面的代码。但我尝试在客户端使用它。它不起作用。所以你能帮忙找出错误吗?
node.js - 从 NodeJS 中上传的文件中读取缓冲区数据
我正在使用“express”模块上传文件。我必须使用node-exif读取上传图像的 EXIF 数据。我不想将文件存储在磁盘上,并且上面的模块支持从缓冲区读取 EXIF 数据。我需要从上传的图像中读取缓冲区数据。这是上传代码:
有人可以帮我获取缓冲区数据,因为我对 Node 世界很陌生吗?
node.js - 重定向天蓝色流以提出请求
我正在尝试将文件从 azure 上传到外部服务 -
我从外部服务收到内容为空的错误。我以前的代码看起来像这样,它可以工作 -
由于我对nodejs的经验很少,我觉得我错过了一些东西。我使用过request和azure-storage库。谢谢。
javascript - 如何使用 NodeJS Streams 从通用函数中查询多个 DB
我有 Nodejs 项目,它从多个数据库中读取数据(通过配置文件提供要执行的数据库信息和查询)并将其作为 csv 上传到 S3。现在的问题是数据可能非常非常大,因此需要使用流来避免内存使用量爆炸。这可以轻松地为任何数据库完成,下面给出了 mysql 的示例:
但是,这是 mysql 特定的实现。我需要以这样的方式设计代码,即主函数调用一个名为“queryGeneric”的标准库函数。此 queryGeneric 函数采用 dbType 参数,然后调用特定于 db 的函数。我如何为这个 queryGeneric 函数使用流?
queryGeneric 函数的示例如下:
常量.js
genericDbFunctions.js
mysql.js
同样,可以有 mssql.js 或 postgresql.js 等文件,其中包含那些特定于 db 的函数。queryGeneric 函数使用 constants.js 文件中提供的映射计算出要调用的相关函数。
现在我的 main.js 将调用 queryGeneric 函数,如下所示: main.js
上面的 main.js 文件实际上很像伪代码,为了问这个问题而写成这样。main.js 实际上循环了一个配置文件,从那里读取规范(连接信息和要运行的查询)并为每个数据库调用 queryGeneric。
如何将 queryGeneric 函数调用转换为:
main.js
任何帮助表示赞赏。让我知道是否需要更多细节或说明。
此外,上面代码片段中的 someFunction 需要是一个将数据上传到 S3 的函数。我希望如果流按预期实现,上传功能应该像随处提供的uploadToS3功能的标准实现。但是,对此也有任何指示。
node.js - 使用 NodeJS 流式传输大型静态文件
我需要定期使用大型未格式化的只读文本文件,并检查每个文件中是否存在某些内容/单词。该文件由所有字母数字字符组成。end
但是,即使读取这些大型静态文件之一的流,我也遇到了问题。
下面是我在注意到它没有到达之后尝试运行的最简单代码的副本,end
这仍然不会触发end
事件。我可以看到许多data
被读取的迭代/块,但绝不是文件的所有数据,end
也从未被触发。
这太简单了,我开始怀疑这是否与我的环境有关,但是如果在上面的简单逻辑中识别为问题以读取流,请告诉我。
注意:如果我继续增加highWaterMark
选项,它会进一步通过文件,但仍然没有到达end
文件的。但是,这对到达或未到达文件末尾没有影响,而是控制每个“块”读取的数据量。