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

Javascript 使用node.js从POST请求下载文件,javascript,node.js,parsing,download,Javascript,Node.js,Parsing,Download,我有一个带有“导出到excel”按钮的页面,我想在node.js中这样做。我在Chrome中使用DevTools来发现,页面在post请求后下载文件,所以我需要重新创建它 我想,我应该用 请求('http://google.com/doodle.png).pipe(fs.createWriteStream('doodle.png')) 但我不明白,怎么会 谢谢大家。你们说得对。因此,您的代码如下所示: request.post( 'http://pif.investfunds.

我有一个带有“导出到excel”按钮的页面,我想在node.js中这样做。我在Chrome中使用DevTools来发现,页面在post请求后下载文件,所以我需要重新创建它

我想,我应该用
请求('http://google.com/doodle.png).pipe(fs.createWriteStream('doodle.png'))

但我不明白,怎么会


谢谢大家。

你们说得对。因此,您的代码如下所示:

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'));

谢谢,文件已创建,但无法打开。我添加了console.log('文件下载!');to.on('finish'),但事件从不触发。
error
事件是否触发?您是否控制远程服务器以查看收到的确切请求?否,未发生任何事件。不,我怎么能?我打开了下载的文件,它有一些数据,但我认为,它的格式不正确或是其他什么。我刚刚运行了上面的代码,它工作正常(唯一应该用
response
事件替换
finish
,但下载本身并不重要)。所以我收到了大小为74752的文件,其中包含包含一些数据(名称,百分比)的表。您是否执行一些额外的代码?你们的环境是什么?是的,当然,尺寸是74752,我打开了,它有cp1251编码。我在mac上使用atom编辑器。最后一件事是如何将下载的xls文件读取到数组中<代码>风险值工作簿=xls.readFile('funds.xls')给出错误“不支持的文件”。但是,我想,不管怎样,我都会输掉这场赛马;)
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'));