我刚刚开始使用feathers-blob通过dropzone从angular4客户端上传文件。 我遵循了示例,但为上传提供了明确的服务,而不是模糊应用程序.js。 它编译没有错误,但在执行时我收到以下错误,即使我不使用多部分:
信息:错误:
系统/文件上传 - 方法:创建:无法读取属性"开始于" 未定义的错误: 类型错误: 无法读取属性 'startsWith' 的 定义 at Dauria.parseDataURI (/projects/esaas-2/esaas-server-basic/node_modules/feathers-blob/node_modules/dauria/dauria.js:27:17( at Object.create (/projects/esaas-2/esaas-server-basic/node_modules/feathers-blob/lib/index.js:87:52( at/projects/esaas-2/esaas-server-basic/node_modules/feathers-hooks/lib/hooks.js:101:31 at/projects/esaas-2/esaas-server-basic/node_modules/feathers-hooks/lib/hooks.js:85:16
我还确保使用与示例中相同的羽毛斑点、dauria 和 multer 版本,而不是来自 npm 的较新版本。结果是一样的。 我做错了什么?任何帮助表示赞赏。谢谢
如果你查看dauria
的代码,你会看到问题来自哪里:
Dauria.prototype.parseDataURI = function(dataURI){
if(!( dataURI.startsWith('data:') )) throw new Error(
this.errors.MISSING_PREFIX
);
这意味着您传递给调用方的值以某种方式dauria.parseDataURI(yourDataVariable)
-yourDataVariable
值不以'data:'
开头。
我在 Node 上做了一个测试,但在尝试上传图像时遇到了同样的错误。我通过添加字符串"数据:图像/jpeg;base64",后跟 64 编码图像。