如何通过管道将默认文件发送到节点请求错误?

时间:2019-05-30 17:33:36

标签: node.js amazon-s3 request

我正在使用带有request软件包的nodejs。

情况:

  1. 我的前端通过HTTP GET向我的节点服务器发送文件请求
  2. 服务器检查用户是否通过身份验证
  3. 服务器在AWS S3上请求文件,如下所示:

    request(req.query.url)
       .on('error', (e) => {
        // Some code here?
        res.sendFile(path.join(__dirname, '../assets/favicon.png'))
       })
       .pipe(res)
    

问题:有时找不到文件或无法连接到AWS S3或任何错误,如果发生这种情况,我想发送一个默认文件。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您开始使用try / catch而不是promises,会不会更清洁一点? 喜欢:

try {
    response = request(req.query.url)
    pipe(res)
catch (e) {
    console.log("just so you can know why it failed")
    pipe(default)
}