【问题标题】:request.get() - if url not foundrequest.get() - 如果没有找到 url
【发布时间】:2020-03-04 01:59:33
【问题描述】:

因此,如果用户尝试获取不起作用的 url,我想结束请求。

这行得通:

var remote = "https://storage.googleapis.com/ad-system/testfolder/OUTOFAREA.mp3";  

    var streama = request.get(remote);

但是让我们说以下 mp3 不存在

https://storage.googleapis.com/ad-system/testfolder/playme.mp3

request.get('https://storage.googleapis.com/ad-system/testfolder/playme.mp3'); 尝试获取文件时,它将返回 404 错误。我想做的是找不到我想运行的文件res.end();

有什么想法吗?

【问题讨论】:

  • 您能否显示此代码的上下文,以便我们了解您正在尝试执行的更多操作?

标签: node.js request


【解决方案1】:

你可以这样写 ### request('endpoint url goes here', { json: true }, (err, res, body) => { if (err) { // 在这里保留你的业务逻辑} }) ######

希望对你有帮助

【讨论】:

    【解决方案2】:

    我不知道此 Cloud Storage,但即使链接也无法访问,所以我建议您检查此服务是否有问题,或者您是否需要一些特殊密钥或其他东西才能访问内容或服务。然后,检查您的代码或使用可以满足您要求的库(如果可用)。

    如果我发现了什么,我会告诉你:)

    编辑:我可以访问https://storage.googleapis.com/ad-system/testfolder/Video/30%20Second%20Timer-0yZcDeVsj_Y.f137.mp4

    【讨论】:

    • 我知道但是如果文件不存在怎么办?
    • 您必须验证响应代码(如 404)。您可以使用 Axios 库使其工作。
    • 这是 axios 的 github 页面:github.com/axios/axios 这里有你需要的一切,并且有很好的文档记录,以防你需要在其他网站或视频上进行调查。 Axios 好用
    • 另外,如果您使用的是 express.js,您必须记住您真正想要对文件执行的操作,因为在某些情况下,它在很大程度上取决于在浏览器中显示的标题,例如“默认玩家”
    【解决方案3】:

    你可以这样做

    app.get("*",(req,res)=> {
        res.end()
    });
    

    并将其插入到您的 404 处理程序之前,但是,我会质疑为什么这可能是一个好主意。如果它是字面上的,所以你扫描跳过检查返回码我真的建议你三思而后行,如果那是你至少想做的事情:

    app.get("*",(req,res)=> {
        res.status(404)
        res.end()
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多