使用node.js从POST请求下载文件

时间:2016-07-14 05:49:26

标签: javascript node.js parsing download

我有一个“export to excel”按钮的页面,我想在node.js中执行此操作。我在Chrome中使用DevTools来查找该页面在发布请求后下载文件,因此我需要重新创建它。

chrome screenshot

var request = require('request'),
fs = require('fs');

request.post(
    'http://pif.investfunds.ru/analitics/coefficients/',
    { form: { rmShowFunds: 'true',
              strFundName: '',
              sbxFundID: '',
              sbxObjFundInvest: '',
              SR: 'on',
              Srtn: 'on',
              date: '2016-06-30',
              Save2XLS: '1' } },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        }
    }
);

我想,我应该使用类似的东西 request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

但我不明白,怎么做。

谢谢你们,伙计们。

1 个答案:

答案 0 :(得分:1)

你做对了。所以你的代码就像:

request.post(
        'http://pif.investfunds.ru/analitics/coefficients/',
        {
            form: {
                rmShowFunds: 'true',
                strFundName: '',
                sbxFundID: '',
                sbxObjFundInvest: '',
                SR: 'on',
                Srtn: 'on',
                date: '2016-06-30',
                Save2XLS: '1'
            }
        }
    )
    .on('error', function(err) {
        // error handling
    })
    .on('finish', function(err) {
        // request is finished
    })
    .pipe(fs.createWriteStream('filename.xls'));