Nodejs https得到响应不起作用

时间:2014-10-12 11:16:10

标签: node.js

我有一百个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大小,其中没有数据,我甚至没有得到任何错误..

我是节点的新用户,这将是我第一次使用节点制作上传回复,我们非常感谢您的帮助。

0 个答案:

没有答案