2017-04-22 144 views
0

我正嘗試使用mongodb將我的網站鏈接到Parse服務器。它運行良好,並保存,所以我可以在解析儀表板和mlab中看到。我試圖添加一個新的變量,導致我搞砸了一些東西。當它運行時它會拋出一個錯誤,說明地址沒有在Parse.Cloud.run的行上定義。Parse.Cloud.run無法識別變量

document.getElementById("btn").addEventListener("click", function(){ 

    var name = document.getElementById('inp1').value; 
    var address = document.getElementById('inp2').value; 
    var city = document.getElementById('inp3').value; 
    var state = document.getElementById('inp4').value; 
    var zipcode = document.getElementById('inp5').value; 

    var Apartment = Parse.Object.extend("Apartment"); 
    var apartment = new Apartment(); 

    apartment.set("name", name); 
    apartment.set("address", address); 
    apartment.set("city", city); 
    apartment.set("state",state); 
    apartment.set("zipcode", zipcode); 

    apartment.save(null, { 
       success: function(apartment) { 
        // Execute any logic that should take place after the 
object is saved. 

        alert('New object created with objectId: ' + prod.id); 
       }, 
       error: function(error) { 
        // Execute any logic that should take place if the save 
fails. 
        // error is a Parse.Error with an error code and 
description. 
        alert('Failed to create new object, with error code: ' + 
error.description); 
       } 
      }); 
     }); 
Parse.Cloud.run("registerApartment",{"name":name,"address":address,"city": 
city, "state": state,"zipcode":zipcode,"map":map}, { 
success: function(savedApartment){ 
console.log(savedApartment); 
}, error: function(error){ 
console.log(error); 
} 
}) 

謝謝你提前!

雲代碼

Parse.initialize('#'); 
Parse.serverURL = 'http://localhost:1337/parse'; 


Parse.Cloud.define("registerApartment", function(req,res){ 
var params = request.params; 
var name = params.name; 
var address = params.address; 
var city = params.city; 
var state = params.state; 
var zipcode = params.zipcode; 



var Apartment = Parse.Object.extend("Apartment"); 
var apartment = new Apartment(); 

apartment.set("name", name); 
apartment.set("address", address); 
apartment.set("city", city); 
apartment.set("state",state); 
apartment.set("zipcode", zipcode); 
apartment.set("map", map); 

console.log(apartment); 

apartment.save(null, { 
success: function(savedApartment){ 
console.log("Succesfully saved bitch"); 
response.success(savedApartment); 
}, error: function(error){ 
console.log(error); 
response.error(error); 
} 
}) 
}); 
+0

變量「地址」是否存在於您調用Parse.Cloud.run的上下文中?也許你提到的錯誤信息是指你傳遞給函數的參數,而不是服務器地址。 –

+0

是的,我有'inp#'連接到html文件中的輸入DOM標記。我使用document.GetElementById後,我console.log他們,他們返回,仍然返回地址是未定義的。我使用github示例Parse,並在我的main.js中設置了params.name,params.address等所有的參數。 – cwa

回答

0

,你可以仔細檢查你的服務器在其中定義雲代碼?

你的代碼應該沿着這條線的東西:

Parse.Cloud.define("registerApartment", function(req,res){ 
    ---your codes--- 
}); 

確保您Parse.Cloud.run()叫你在你的服務器定義了什麼回來。

編輯: 嘗試改用您目前的這段代碼:

Parse.Cloud.run("registerApartment",{name:name,address:address,city: 
city, state: state,zipcode:zipcode,map:map}, { 
success: function(savedApartment){ 
console.log(savedApartment); 
}, error: function(error){ 
console.log(error); 
} 
}) 

我所做的只是在參數解析時刪除引號。這應該工作得很好:)

+0

是的,我已經在我的語法中了。不知道該怎麼稱呼它。我得到了參數並將變量設置爲一個新的公寓對象 – cwa

+0

在我看來,就像您輸入的地址無效或您的雲代碼一樣,您沒有從您發送的值中檢索/定義地址。是否有可能粘貼你的雲代碼讓我看看? – Lyon

+0

我用變量document.getElementById(「」)設置了變量console.log後,變量成功了,但是stil調出的地址未定義。設置 – cwa