簡體   English   中英

wget的Node.js執行

[英]Node.js exec with wget

我正在嘗試使用nodejs和exec命令下載很多文件,簡化如下:

var cmd = 'wget -O output.csv URL';
var child = exec(cmd, function(err) {
  console.log('DONE');
});

但是,回調是在實際通過wget下載文件之前觸發的,從而導致文件包含諸如``0O6D1n1] v。 wget完成后是否應該觸發回調? 在命令行上運行同一命令時,該文件有幾個MB,因此要花5秒鍾的時間。

順便說一句:我不使用request模塊,因為它速度較慢,並且遇到了發射器偵聽器問題( EventEmitter memory leak detected. 11 listeners added )。

謝謝!

這將涉及一些調試。

您能否以下列方式嘗試運行腳本:

var cmd = 'wget -O output.csv URL';
var child = exec(
  cmd,
  function (error, stdout, stderr) {
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
    if (error !== null) {
      console.log('exec error: ' + error);
    }
  }
);

看看stdout和stderr怎么說。

正確,您向我提供了stderr ,其中說:

http://productdata.zanox.com/exportservice/v1/rest/22791753C32335607.csv?ticket=BC4B91472561713FD43BA766542E9240AFDD01B95B123E40B2C0375E3A68C142

命令行獲取的此URL缺少與號( &字符)之后的所有內容。 這表明轉義有問題。

要解決此問題,請嘗試將\\&替換為\\\\\\&

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM