上传图片时出现此错误
match.js:38 Uncaught Error: Match error: Expected string, got undefined
check @ match.js:38
_addUrlToDatabasePI @ upload-to-amazon.js:32
(anonymous function) @ upload-to-amazon.js:108
(anonymous function) @ edgee_slingshot.js:375
如果没有弄错的话,它与我在_addUrlToDatabasePI方法中使用check的方式有关。这是我的方法
let _addUrlToDatabasePI = ( url ) => {
check(url, String);
var previewImageURL = Session.get("previewImageURL");
previewImageURL = url;
Session.set("previewImageURL", previewImageURL);
console.log("Test" + " " + Session.get("previewImageURL"));
_afterUploadingPI();
};
uploader与弹弓方法一起使用,将在Amazon S3中上传图像,
var uploader
if (config === '1') {
uploader = new Slingshot.Upload( "uploadToAmazonS3Cg1" );
}
if (config === '2') {
uploader = new Slingshot.Upload( "uploadToAmazonS3Cg2" );
}
if (config === '3') {
uploader = new Slingshot.Upload( "uploadToAmazonS3Cg3" );
}
这里是如何使用_addUrlToDatabasePI函数,它是在客户端,
uploader.send( file, ( error, url ) => {
if ( error ) {
Bert.alert( error.message, "warning" );
_setPlaceholderText();
}
if (config === '1'){
_addUrlToDatabasePI( url );
}
if (config === '2') {
_addUrlToDatabaseSS( url )
}
if (config === '3') {
_addUrlToDatabaseZip (url )
}
});
};
它很奇怪,因为它曾经工作,我可以上传没有错误的文件,它突然出现。我昨天关闭了我的笔记本电脑,今天我试图测试它。这是工作。这很奇怪!!
知道什么可能导致错误吗?
答案 0 :(得分:1)
uploader.send
异步工作,因此url
在其回调中不会立即可用。你应该首先检查它的存在:
uploader.send( file, ( error, url ) => {
if ( error ) {
Bert.alert( error.message, "warning" );
_setPlaceholderText();
}
if ( url ) { // check that url has returned
if (config === '1'){
_addUrlToDatabasePI( url );
}
if (config === '2') {
_addUrlToDatabaseSS( url )
}
if (config === '3') {
_addUrlToDatabaseZip (url )
}
}
});
};