0
我的服務器在數據庫保存數據前檢查,如果服務器無法將數據保存到數據庫,它會發送錯誤信息。我的客戶端應用程序中的 如何獲取此錯誤並顯示?如何在客戶端獲取服務器錯誤信息Node.js
這是我的客戶端的HTTP請求 -
button.addEventListener('click', function(e) {
var service_ = service.value;
if (start_pick < end_pick) {
var jsondata = [{
start_time : new Date(start_pick),
end_time : new Date(end_pick),
service : service_,
}];
var xhr = Titanium.Network.createHTTPClient();
xhr.setTimeout(10000);
xhr.open("POST", "url");
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xhr.send(JSON.stringify(jsondata));
xhr.onerror = function(e) {
//Ti.API.debug(e.error);
// console.log(e.error)
Titanium.API.info("Error in connecting to server !!");
alert("Error in connecting to server !!");
};
xhr.onload = function(e) {
//alert(e)
if (e.error) {
alert(this.responseText);
} else {
windowAddDataInvoce.close();
}
};
這是我的服務器端的 「POST」 代碼
app.post('/collections/:collectionName', function(req, res, next) {
console.log(req.body[0])
req.collection.findOne({"service":req.body[0].service}, function(e, result){
if(result){
console.log(result); console.log(e)
res.send({error:"Task allrady exits"})
}
else{
req.collection.insert(req.body, {}, function(e, results){
if (e) return next(e)
res.send(results)
})
}
})
})
那麼我怎麼能從客戶端得到錯誤消息? – kosala 2014-11-04 08:00:54
在客戶端獲取錯誤消息的任何幫助 – kosala 2014-11-04 08:19:02
錯誤消息位於響應的正文中。我不知道你的Titanium API把這些信息放在哪裏 - 應該放在文檔的某個地方。也許作爲錯誤回調的第二個參數? 但是讓我告訴你,從服務器發送實際錯誤消息到客戶端是一種不好的模式 - 特別是沒有堆棧跟蹤或類似的東西,因爲它可能會暴露您的服務器體系結構,從而使其成爲安全威脅。在您的客戶端上定義錯誤消息取決於服務器的HTTP狀態。 – Charminbear 2014-11-04 08:42:57