如何处理 node.js 请求中的 URI 错误?

How to handle a URI error in node.js Request?

尝试简单地下载带有请求的文件。 https://www.npmjs.com/package/request

它工作得很好,但是如果 url 无效,脚本会崩溃并出现错误:无效的 URI "notagoodurl"

我该如何处理这个错误并记录一些东西并防止整个脚本因为这个错误而结束?我认为这就是 on('error') 会做的。

//download file
request
  .get(url)
  .on('error', function(err) {
    return err;
  })
  .pipe(
    fs.createWriteStream(destination)
      .on('close', function() {
        message.channel.send(filename + ' added.');
      })
  );

如果您需要解决致命错误,请将调用包装到 catch:

try {
  //download file
  request
    .get(url)
    .on('error', function(err) {
      console.log('Not a fatal error:', err);
    })
    .pipe(
      fs.createWriteStream(destination)
        .on('close', function() {
          message.channel.send(filename + ' added.');
        })
    );
} catch (err) {
  console.log('Fatal error:', err);
}