Node.js 使用Mongoose将大约70个对象插入MongoError:read EconReset

Node.js 使用Mongoose将大约70个对象插入MongoError:read EconReset,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,在我的场景中,节点需要读取目录中的img文件数组,并将二进制文件存储到MongoDB。此函数用于测试将文件存储到MongoDB的能力。img文件大小范围为5kb到3mb 第一部分。连接mongdb 我使用options参数设置套接字的keepAlive,我希望套接字保持长时间 var options = { server: { socketOptions: { keepAlive: 1, connectTimeoutM

在我的场景中,节点需要读取目录中的img文件数组,并将二进制文件存储到MongoDB。此函数用于测试将文件存储到MongoDB的能力。img文件大小范围为5kb到3mb

第一部分。连接mongdb

我使用options参数设置套接字的keepAlive,我希望套接字保持长时间

var options = { 
    server: { 
        socketOptions: { 
            keepAlive: 1,
            connectTimeoutMS: 30000
        }
    },
    replset: {
        socketOptions: {
            keepAlive: 1,
            connectTimeoutMS : 30000
        } 
    } 
};

mongoose.connect(mongooseURI, options);
第二部分。插入操作

fs可以成功读取文件,但文件数量可能会导致错误,我将在最近编写。我使用collection.insert来存储数据数组

Img.collection.insert(fileArr, function(err, docs){
    if(err){
        console.info('\033[31mError: Failed to save docs  with error: ', err, '\033[39m');
        process.emit('DB_OPS_DONE', err.message);
    }else{
        console.info('%d images were successfully stored.', docs.length);
        console.log('benchmark took %d nanoseconds', diff[0] * 1e9 + diff[1]);
        process.emit('DB_OPS_DONE', 'Successful insert docs');
    }
});
第三部分。密切联系

这会使节点应用程序在出现错误时正常停止

process.on('DB_OPS_DONE', function(msg) {
    mongoose.connection.close(function () {
        console.log('Mongoose disconnected on app termination with ', msg);
        process.exit(0);
    });
});

如果文件数量变大,则会出现错误。数字测试大约40。这意味着如果文件数<40,节点可以成功完成

错误是
MongoError:server localhost:27017收到错误{“name”:“MongoError”,“message”:“read ECONNRESET”}


环境:

操作系统:win7

nodejs:0.10.31

mongodb:2.7


mongoose:4.0.5

你有没有修复过这个:O?没有。我不得不一个接一个地插入以避免内存限制。