Node.js 使用Mongoose将大约70个对象插入MongoError:read EconReset
在我的场景中,节点需要读取目录中的img文件数组,并将二进制文件存储到MongoDB。此函数用于测试将文件存储到MongoDB的能力。img文件大小范围为5kb到3mb 第一部分。连接mongdb 我使用options参数设置套接字的keepAlive,我希望套接字保持长时间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
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?没有。我不得不一个接一个地插入以避免内存限制。