Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用mongoose保存多个文档时处理错误_Javascript_Mongodb_Mongoose - Fatal编程技术网

Javascript 使用mongoose保存多个文档时处理错误

Javascript 使用mongoose保存多个文档时处理错误,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我正在创建一个可以接收多个文档的API。 我的代码调用Document#create using promissions,如下所示: var body = [{url: "http://url1"}, {url: []}]; // example of a request payload Image.create(body).then(function(images){ // do something... }).onReject(function(err) { // err i

我正在创建一个可以接收多个文档的API。 我的代码调用Document#create using promissions,如下所示:

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
参数不是字符串

问题是,当其中一个文档未通过验证时,只有第一个失败被发送到promise中的failure函数

此外,我无法访问任何已成功保存的记录。我在github上搜索了文档和测试,但找不到任何相关信息


在创建多个文档时,有没有更好的方法来处理这种情况?

显然,目前没有办法在将数组传递给文档的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);
    });
});
因为我不允许一次创建大量记录,所以这个解决方案有效。在执行结束时,我有一个数组,其中包含所有记录以及失败记录返回的错误消息