我有一百个PNG
个文件,我需要压缩它们的大小,我找到了一个可以进行压缩的页面(tinypng)。
所以我创建了一个节点程序,它将检索文件夹中每个文件的名称,然后将它们流式传输
var https = require("https");
var fs = require("fs");
var path = '../';
var compressedPath = path + 'conversion/';
var key = '<api key>';
var options = require("url").parse("https://api.tinypng.com/shrink");
options.auth = "api:" + key;
options.method = "POST";
var file = fs.readdirSync(path);
console.log('files loaded');
for(data in file)
{
if(file[data].indexOf('gif') == -1 && file[data].indexOf('png') != -1)
{
// console.log(path + file[data]);
var input = fs.createReadStream(path + file[data]);
var output = fs.createWriteStream(compressedPath + file[data]);
var request = https.request(options, function(response)
{
if(response.statusCode == 201)
{
https.get(response.headers.location, function(response)
{
response.pipe(output);
console.log(file[data] + ' compression success');
});
}
else
{
console.log(file[data] + ' compression failed');
}
});
input.pipe(request);
}
}
我在get上登录以查看它是否正常工作,但它没有显示任何内容,甚至在get函数之外,当我检查下载文件所在的文件夹时,它们已经是在那里,但在0kb大小,其中没有数据,我甚至没有得到任何错误..
我是节点的新用户,这将是我第一次使用节点制作上传回复,我们非常感谢您的帮助。