因此,只有当用户在输入中输入lat,lng时才需要进行http请求调用,这意味着在服务器端我必须检查输入是否已设置。如果是,那么我想添加这些数据,再加上一些数据到数据库。如果没有设置,那么我只想将更多的数据保存到数据库中。
现在我在if {}和else {}中运行相同的代码。我有办法避免这种情况吗?
答案 0 :(得分:1)
你只需要测试args,lat和lng是否都有信息。在这两种情况下,您都必须保存allData或someData。 所以,最好的方法是(恕我直言):
var lat = (lat != '') ? lat : 0;
var long = (lng != '') ? lng : 0;
saveDataToDB(lat, long, somedata);
因此,如果值为0或',则保存为0(认为两个值均为数字)
答案 1 :(得分:0)
抽象出if
和else
语句中的代码,并使其成为一个接受对象并将其持久保存到数据库的函数。然后调用该函数,传入响应对象(或者如果你事先做了一些工作,则传递一个替代对象。)
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);
}
}
有最有可能的工具可以帮助您处理您正在做的事情 - 如果您展示了一些您想要做的事情,这个答案可以获得批次< / em>不太通用。 : - )