1

URL のリストをループし、 needleを使用してそれらをフェッチするコードが少しあります。URLの 1 つが不正な形式であると思われる針が実行を停止するURIErrorをスローするように見えるため、問題が発生しています。

私が望むのは、悪い URL をマークすることですが、ループは続きます。try-catch ブロックを含む次のコードがありますが、それでもエラーがスローされます

URIError: URI malformed
    at decodeURIComponent (native)
    at parseSetCookieString (node_modules/needle/lib/cookies.js:44:35)
    at node_modules/needle/lib/cookies.js:54:18
    at Array.reduce (native)
    at Object.parseSetCookieHeader [as read] (node_modules/needle/lib/cookies.js:53:17)
    at ClientRequest.<anonymous> (node_modules/needle/lib/needle.js:418:30)
    at ClientRequest.g (events.js:199:16)
    at ClientRequest.emit (events.js:107:17)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:426:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:111:23)

ループはこんな感じ

for (var i =0; i < items.length; i++)
  {
    var url = items[i].link;
    var options = {};
    (function(inner_url){
      try {
        needle.get(inner_url, options, function(err, res) {
          if(err) {
            console.log(err)
          } else {
            console.log('success')
          }
        })
      } catch (URIError) {
        console.log(URIError)
      }
  })(url)
  }

ポインタはありますか?

ありがとう

4

1 に答える 1