2016-07-14 13 views
0

Ich habe eine Seite mit "Export to Excel" -Taste, und ich möchte das in node.js tun. Ich habe DevTools in Chrome verwendet, um herauszufinden, dass die Seite die Datei nach der Post-Anfrage herunterlädt, also muss ich sie neu erstellen.Laden Sie die Datei von POST-Anfrage mit node.js

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

Ich denke, dass ich so etwas wie

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

verwenden sollte, aber ich verstehe nicht, wie.

Danke, Jungs.

Antwort

1

Sie haben es richtig gemacht. So würde Code wie sein:

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

Danke, Datei wurde erstellt, aber es kann nicht geöffnet werden. Ich habe console.log hinzugefügt ('Datei heruntergeladen!'); to .on ('finish'), aber Event wird nie ausgelöst. – randomsuffer

+0

Feuert das Ereignis 'error'? Steuern Sie den Remote-Server, um zu sehen, welche Anfrage genau eingegangen ist? –

+0

Nein, nichts ist passiert. Nein, wie kann ich? Ich öffnete diese heruntergeladene Datei, es hat einige Daten, aber ich denke, es hat ein falsches Format oder etwas – randomsuffer