我正在使用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键,可能与创建新的File Object有关,但是我没有找到任何键。 https://nuxtjs.org/api/context

我尝试使用asyncdata中的File对象搜索类似的错误,尽管我什么都没找到。

有什么建议么?

编辑----还要添加:

如果可能与此相关,我从中获取的URL会出现一个下载对话框。

最佳答案

asyncData在第一次加载时在服务器上执行。并且在服务器上,节点中没有诸如File之类的东西。因此,您不能在服务器代码上使用文件。

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

关于javascript - 未定义文件对象NuxtJS AsyncData(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57117751/

10-12 15:32