![](/img/trans.png)
[英]Unable to search for user using parse.com query and javascript SDK
[英]Unable to let user upload profile picture in sign up process (Parse.com/JS SDK)
使用parse.com和JavaScript SDK。 代碼應該讓用戶注冊並上傳個人資料圖片。
更新了,這是我正在使用的代碼,它在嘗試注冊用戶時返回錯誤控制台消息is Uncaught TypeError: Cannot read property 'length' of undefined
> $('#SignUp').click(function(e) {
> UserSignUp(); });
>
>
> function UserSignUp() {
>
> var user = new Parse.User();
> userFirstname = $('#firstnamesu').val();
> userLastname = $('#lastnamesu').val();
> userUsername = $('#usernamesu').val();
> userGender = $('#gendersu').val();
> Email = $('#emailsu').val();
> PWP = $('#passwordsu').val();
>
> user.set("FirstName", userFirstname);
> user.set("LastName", userLastname);
> user.set("username", userUsername);
> user.set("gender", userGender);
> user.set("email", Email);
> user.set("password", PWP);
>
>
> var fileUploadControl = $("#pic")[0]; if (fileUploadControl.files.length > 0) { var file =
> fileUploadControl.files[0]; var name = "photo.png";
>
> var parseFile = new Parse.File(name, file);
>
> //put this inside if { parseFile.save().then(function() { //
> The file has been saved to Parse. }, function(error) { // The
> file either could not be read, or could not be saved to Parse.
> });
>
> // Be sure of ur parameters name
> // prod is extend of my class in parse from this: var prod = new products();
> user.set("ProfilePic", parseFile);
> user.save(); } ////////////Runs parse after the SignUp button has been clicked by the user////////////////////
>
> $('#SignUp').click(function(e) {
> UserSignUp(); });
>
> user.signUp(null, {
> success: function(user) {
> if (!user.existed()) {
> window.location.href = "user_home.html";
> } else {
> alert("NO WAY BUDDY");
> }
> },
> error: function(user, error) {
>
> }
> });
我能夠通過使用以下代碼回答我自己的問題。 基本上,這是一個將代碼重構為更合理的順序來解決它的情況。 我在這里遇到的另一個問題沒有幫助解決問題。 parse.com用戶注冊無法正常工作的問題
$('#SignUp').click(function(e) {
UserSignUp();
});
function UserSignUp() {
var fileUploadControl = $("#pic")[0];
if (fileUploadControl.files.length > 0) {
var file = fileUploadControl.files[0];
var name = "photo.png";
var user = new Parse.User();
var parseFile = new Parse.File(name, file);
userFirstname = $('#firstnamesu').val();
userLastname = $('#lastnamesu').val();
userUsername = $('#usernamesu').val();
userGender = $('#gendersu').val();
Email = $('#emailsu').val();
PWP = $('#passwordsu').val();
user.set("ProfilePic", parseFile);
user.set("FirstName", userFirstname);
user.set("LastName", userLastname);
user.set("username", userUsername);
user.set("gender", userGender);
user.set("email", Email);
user.set("password", PWP);
var uri = encodeURI('http://XXXX.com/XXXX.html');
user.signUp(null, {
success: function(user) {
if (!user.existed()) {
window.location.href = uri;
}
},
error: function(user, error) {
// Show the error message somewhere and let the user try again.
}
});
};
}
第一個建議,它將使您的代碼更長一些,但它會告訴您錯誤發生的位置。
function ifUndeforNull(val){
var ret = false;
try{
if((val == undefined)|| (val==null)){
ret = true;
}
}catch(ex){
console.log("Error:"+ex);
}
return ret;
}
那么你檢查你的val是未定義的還是null。
if(ifUndeforNull(userFirstname)){
console.log('User First Name Null or Undefined');
}
將整個包裝在try {} catch {}中並使用日志記錄也會有所幫助。
最后,我將使用var聲明變量,例如userFirstName,因為有時候瀏覽器在未指定時會非常不標准。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.