【发布时间】:2020-12-24 04:43:32
【问题描述】:
我正在尝试在我的 Angular 9 项目中使用 javascript 代码 cors_upload.js here 将视频上传到 youtube。但是,我收到一个错误:
src_assets_js_cors_upload_js__WEBPACK_IMPORTED_MODULE_1__.MediaUploader is not a constructor.
以下是我已经做过的事情:
- 我已经创建了一个项目并获得了 API 密钥。
- 我已经请求了 youtube 上传权限,并且用户已授予它
- 下载并包含在 src/assets/js 文件夹中的 cors_upload.js 文件。
- 在 angular.json 中包含 CORS 上传脚本
"scripts": [ "src/assets/js/cors_upload.js" ] - 在代码中,我将 cors_upload.js 中的函数导入为
- 下面是我尝试创建 MediaUploader 对象的代码:
var uploader = new ytapi.MediaUploader({ baseUrl: 'https://www.googleapis.com/upload/youtube/v3/videos', file: uFile, token: token, metadata: metadata, params: { part: Object.keys(metadata).join(',') }})
在 cors_upload.js 中,MediaUploader 被声明为构造函数:
/**
* ...
* @constructor
* @param {object} options Hash of options
* @param {string} options.token Access token
* @param {blob} options.file Blob-like item to upload
* @param {string} [options.fileId] ID of file if replacing
* @param {object} [options.params] Additional query parameters
* ...
*/
var MediaUploader = function (options) {
...
}
【问题讨论】:
-
好吧,即使它被注释为构造函数,它仍然是一个函数,您是否尝试过不使用'new'?
-
我需要返回一个对象,以便我可以调用其他方法。例如,带有构造函数的函数获取有关要上传的文件的信息,但是,稍后我需要为要上传的文件调用 send 方法。
标签: javascript angular youtube-api youtube-data-api