问题标签 [transform-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.
javascript - 如何让 NodeJS 转换流为每个输入块发出多条记录?
我正在编写一个转换流,它接受一个传入的 XML 流并将其中的一个子集作为 JS 对象发出。
需要写两个item对象
和
因为它将通过管道传输到 CSV 写入器中。
代码看起来像
当 xml 很简单时
这很好用,但是当它遇到item
多个文件时,它就会停止并在第二个发生时'end'
立即触发。tranny.write
如何让转换流为每个输入块发出多条记录?
json - 在 JSON 对象中包装 nodejs 流
我有一个可读的流,像这样:
加密在整个文件上按预期工作。我需要将加密的结果包装成某种 json,所以输出流接收这样的东西:
我怎么做?
此外,如果加密密钥匹配,我需要读取存储在磁盘上的文件并将其从 json 中解包。
提前致谢
javascript - 如何使用节点变换将一个对象转换为另一个对象
我是 Node 流的新手,并试图弄清楚为什么事情没有按预期工作。我只是在练习,想做一个愚蠢的变换。
最后我运行脚本并通过标准输入输入:
我也试过:
但是循环将块视为字符串而不是对象。所以我看到如下输出:
我尝试了以下各种组合:
并且还在_transform()
使用:
butobj
从来都不是一个对象,而是一个字符串。
我的目标是在我的转换流中接收一个对象,改变它,然后输出它。但是我只能处理字符串,即使使用JSON.parse()
.
我在哪里错了?
更新 - 部分解决方案
问题出在我使用JSON.parse()
. 我试图解析:
哪个是有效的 JS,但不是有效的 JSON,呵呵!
然而,更大的问题仍然存在。我已将 Transform 流设置为: writableObjectMode = true
,但是当我这样做时:
我得到错误:
TypeError: Invalid data, chunk must be a string or buffer, not object
如果我做:
事情按预期工作。
但是,考虑到我已经在对象模式下设置了东西,这不应该在没有字符串化的情况下工作吗?
javascript - 如何编写一个异步函数来解决`data`事件发射器触发
我正在使用 node-serialport 与一块硬件进行通信。它只是写一个命令并接收一个响应。
https://serialport.io/docs/en/api-parsers-overview
以下代码有效:
然后从我的应用程序(用电子/反应编写)我可以调用该函数:
无论如何我可以重构这段代码以使其更简洁吗?
有没有办法从async
函数中获取 Promise,而不必做出新的 Promise?
有没有办法利用已经存在的转换流并以某种方式将 Promise 传递到那里?
我也是 async/await 的新手,想避免使用回调,尤其是在 React/Redux 方面。
I aim to have a lot of these endpoints for the api (i.e. getFirmwareVersion
, getTemperature
, etc...). So I want to make the code as concise as possible. I don't want the UI to have any underlying knowledge of how the API is getting the data. It just needs to request it like any other API and wait for a response.
node.js - 使用 Benchmark.js 测试转换流 (Node.js) 期间的问题
我正在尝试对 NodeJS 代码进行基准测试,但出现以下错误:
我的代码独立工作,但不适用于 Benchmark.js。问题出在哪里?似乎当 Benchmark.js 开始第二次测试时,它会尝试在已关闭的文件上写入,但我看不到问题所在。
node.js - 丢弃 NodeJS 转换流中的块并读取下一个
如何丢弃 NodeJS 转换流中的一个块并从前一个流中读取下一个块?
如果它没有通过 ruleCheck 流中的某些标准,我想丢弃该块。
javascript - 哈夫曼算法与 Node JS 中的流
我在 Node JS 中实现了Huffman 算法,它看起来像这样:
但我想像这样实现它:
问题是我需要两次读取源文件的内容。首先是创建频率表和霍夫曼树,其次是对内容进行精确编码。那么有没有可能用 Transform Stream 来实现这个任务呢?
PS带解码没问题
javascript - Shopify Server 不允许完整的文件下载
我使用 webpack 编写了一个页面并将其集成到 shopify 商店中。该站点在我的本地服务器上运行良好,但在 shopify 服务器上运行良好。
问题是由于这部分:
它在我的本地“Windows 10”计算机上运行良好,带有 shopify 主题服务。每个目标文件加载四个块。它在 CentOS 7 服务器上的先前站点版本中也可以正常工作。
将页面推送到 shopify 服务器时,目标文件未完全加载。只有一个碎片块被加载,仅此而已。
我尝试过 Brave、Chrome、Firefox 和 Edge。所有相同的结果。似乎 fetch 没有下载完整的文件。
更新: url 由 shopify 动态计算,类似于“https://cdn.shopify.com/s/files/1/0592/8421/4512/t/1/assets/42a0ee4e462cc7ac412522343.zip”
在本地,文件已使用 fetch 正确加载,并且可以使用提供的链接直接从浏览器下载。
在 shopify 服务器上,提取不起作用。当我尝试从浏览器直接下载时,它会返回一个名称正确的 1ko 文件(而不是 ~100ko)。
node.js - NodeJS net.socket 按条件/过滤器管道
我是 NodeJS 的新手。现有的 net.socket 管道需要按条件过滤以不连接到“con2”,我现有的代码如下。
我找到了 Transform 和 PipeLine 方法,到目前为止,我尝试过,示例代码还不适用于我的场景。
条件是在“con1”读取流数据有一些关键字。例如“输出” 然后,不要将数据连接或转换为空到“con2”。这样,“con2”就不用处理了。
启动.js
代理.js
请帮忙指教。提前非常感谢。
node.js - Two confusions about transform stream part of node.js documentation around pre-ES6 style
Here is the doc I am confused with.
When using pre-ES6 style constructors
Why do we need to check
this instanceof MyTransform
? As far as I know, as long as we invokenew MyTransform()
, evaluation ofthis instanceof MyTransfrom
will always returntrue
. Maybe usingMyTransform()
to create aTransform
instance can be found in many code bases? This is the only reason I could guess.What is the purpose of
util.inherits(MyTransform, Transform);
? Just to ensure thatnew MyTransform() instanceof Transform
returnstrue
?
Thank you for your time in advance!