2011-04-26 99 views
0

所以我必須做一個http請求調用只有當用戶輸入緯度,lng在輸入,所以這意味着在服務器端我必須檢查,如果輸入設置或不。如果是這樣,那麼我想添加這些數據,再加上一些數據到數據庫。如果沒有設置,那麼我只想將更多的數據保存到數據庫中。http請求,如果問題

現在我在if {}和else {}中運行相同的代碼。有沒有辦法讓我避免這種情況?

+0

請澄清一下,我們願意幫助,但澄清更多。如果可能的話,顯示一些代碼。 – nemesisfixx 2011-04-26 22:01:08

回答

0

摘錄出您的ifelse語句中的代碼,並使其成爲一個函數,它接受一個對象並將其保存到數據庫中。然後調用該函數,傳遞響應對象(或替代的對象,如果你事先做了一些工作。)

function persist_data(response) { 
    // Do work to set up the database 
    database.save(response); 
} 

function respond_to_user_input(req, res) { 
    var response = {}; 
    // Populate the necessary data into the response object 
    if (user_has_provided_lat_and_lng) { 
     // Set up your response object to include lat an lng 
     persist_data(response); 
    } else { 
     // Include only the *other* data 
     persist_data(response); 
    } 
} 

最有可能已工具,在那裏幫助你和你正在做的事情 - 如果你顯示了一些你正在嘗試做的這個答案,可以得到一個批次不那麼通用。 :-)

1

你只需要測試args,lat和lng是否都有信息。在這兩種情況下,您必須保存allData或someData。 因此,要做到這一點,最好的方法是(恕我直言):

var lat = (lat != '') ? lat : 0; 
var long = (lng != '') ? lng : 0; 

saveDataToDB(lat, long, somedata); 

因此,如果值是0或「」,您保存0(認爲這兩個值是數字)