【问题标题】:File Object Not Defined NuxtJS AsyncData()文件对象未定义 NuxtJS AsyncData()
【发布时间】:2019-11-28 18:15:38
【问题描述】:

我正在使用 NuxtJS 的 AsyncData 方法从 API 获取视频文件,然后作为文件对象返回到页面。

像这样:

async AsyncData({$axios}){
    var user_video = null;
    try{
        var video = $axios.get("my awesome url");
        user_video = new File([video], "video.mp4",{type:"video/mp4"}); // <= this line
    }catch(error){
        console.log(error);
        console.log("no saved video");
    }

    return {user_video};
}

在服务器端控制台中,它显示此错误:

ReferenceError: File is not defined
    at asyncData (pages/send/video.js:155:11)
    at process._tickCallback (internal/process/next_tick.js:68:7)
no saved video

我查看了其他 nuxtjs Content 使用的键,这些键可能与创建新文件对象有关,但我没有找到。 https://nuxtjs.org/api/context

我尝试在 asyncdata 中使用 File 对象来搜索类似的错误,但我没有找到任何东西。

有什么建议吗?

编辑----还要添加:

我从中获取的 URL 会显示在下载对话框中,以防这可能相关。

【问题讨论】:

    标签: javascript node.js nuxt.js


    【解决方案1】:

    asyncData 在首次加载时在服务器上执行。在服务器上,节点中没有文件之类的东西。所以你不能在你的服务器代码上使用 File。

    您不应该使用 File 或不使用 asyncData 并使用挂载的钩子来获取和设置您的数据。

    【讨论】:

    • 感谢这让我大开眼界。我有一个解决方法,将视频源直接设置为 URL,而不是像我在原始帖子中尝试做的那样首先获取 URL。
    猜你喜欢
    • 2021-10-25
    • 2022-07-30
    • 2019-02-02
    • 2023-03-21
    • 2020-02-06
    • 2019-02-13
    • 2020-10-08
    • 2020-01-31
    • 2021-09-23
    相关资源
    最近更新 更多