小编the*_*n24的帖子

如何使用 Node.js createReadStream 和 createWriteStream 写入多个文件

好的,这是这段代码的总体目标。我正在使用 TinyPNG 的 API 来压缩 png 文件的文件夹。我有一个输入文件夹,其中包含许多名为 filename.png 的文件。此代码将文件名目录读取到数组文件中,然后为这些文件创建读写流,将其发送到 API,进行处理,然后返回,以便将其写入输出文件夹中的文件。我知道代码适用于一个文件,但除此之外的任何文件都会引发 write after end 异常,因为管道在第一个文件之后会自动关闭。我尝试将输入和输出设置为数组,但这只会引发另一个异常。

关于如何设置多个读写流的任何提示都会很棒,并且对每个人都非常有用:)。

当前代码:

var fs = require('fs');
var inputFolder = "input/";
var outputFolder = "output/";
var https = require("https");

var key = "GETYOUROWNFREEONEFROMTINYPNG.ORG";

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

var options = require("url").parse("https://api.tinypng.com/shrink");
options.auth = "api:" + key;
options.method = "POST";

console.log("Reading files...");

fs.readdir("./input", function (err, files) {

  if (err) throw err;

  console.log(files.length + " files read...");

  var input;
  var output;
  var request;

      for(var i = 0; i < files.length; …
Run Code Online (Sandbox Code Playgroud)

javascript compression png pipe node.js

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

compression ×1

javascript ×1

node.js ×1

pipe ×1

png ×1