2015-03-02 65 views
0

我正在創建一個可以接收多個文檔的API。 我的代碼調用文檔#創建使用承諾如下:用貓鼬保存多個文檔時處理錯誤

var body = [{url: "http://url1"}, {url: []}]; // example of a request payload 
Image.create(body).then(function(images){ 
    // do something... 
}).onReject(function(err) { 
    // err is the object returned by the first problematic document 
}); 

上的代碼模型上面會拒絕第二個文檔,因爲url參數不是字符串。

問題是,當其中一個文檔未通過驗證時,只有第一個故障發送到承諾中的故障功能。

此外,我無法訪問任何已成功保存的記錄。我搜索了github上的文檔和測試,但在這個問題上找不到任何東西。

創建多個文檔時有更好的方法來處理這種情況嗎?

回答

0

顯然目前沒有辦法在將數組傳遞給Document#create方法時獲取成功的記錄。即使回調函數也不會將它們作爲參數傳遞。

我設法做我想要的方式是通過創建通過new資源對象,然後保存對象:

var body = [{url: "http://url1"}, {url: []}]; // example of a request payload 
var images = []; 
body.forEach(function(img) { 
    var image = new Image(img); 
    image.save(function(err) { 
     images.push(err || image); 
    }); 
}); 

因爲我不會讓馬上要創建大量的記錄,此解決方案工作。在執行結束時,我有一個包含所有記錄的數組,以及失敗的返回的錯誤消息。