当前位置: 首页 > 面试题库 >

为什么MongoDB节点驱动程序生成实例池会销毁错误?

嵇星海
2023-03-14
问题内容

当我运行以下代码时,我收到错误消息“ MongoError:服务器实例池已损坏 ”。知道为什么或如何解决这个问题吗?

var csv = require('./importer.js');
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var ObjectId = require('mongodb').ObjectID;
var url = 'mongodb://.....';


MongoClient.connect(url, function(err, db) {

    assert.equal(null, err);
    console.log("Connected correctly to server.");

    csv.foreach('data/airports.csv', function(airport){
        db.collection('airports').insertOne(airport, function(err, result) {
            if(err) {
                console.log(err)
            } else {
                console.log("Inserted: " + airport.ident);
            }
        });
    });

    db.close();
});

问题答案:

csv.foreach并且insertOne调用(大概)都是异步的,因此您要db.close()在插入完成之前进行调用。

您需要提出一种等待调用的方法,db.close()直到调用了所有插入的回调。具体方法取决于您的csv模块如何工作,但是使用async模块之类的方法可以帮助进行异步流控制。



 类似资料:
  • 问题内容: 使用节点8.4.0: 但是,以下错误也不是交互式的:(唯一的区别是分号) 同样在Chrome控制台中: 有人可以解释吗? 澄清度 这与按预期工作的let,var或cosnt解构无关。这与先前定义的变量(或非严格模式)有关:从chrome控制台: 问题答案: 将对象分解为现有变量的正确语法是 这允许成为一种表达。否则,将其解释为带有逗号运算符的块,这将导致错误。 它在控制台中不带括号和分

  • 问题内容: 我有一个设置为启动Java活动(称为MyJavaActivity)的android应用,这反过来又会启动NativeActivity。NativeActivity完成后,它将返回到MyJavaActivity。 我还有一个Java单例类(称为MyJavaSingleton),我希望在应用程序的整个生命周期中都将其保留在内存中。我从NativeActivity(使用JNI)中设置了一些单

  • 问题内容: 当我使用session_destroy()时,出现“会话对象销毁失败”的消息。 是什么导致此错误? 问题答案: 错误: 警告:session_destroy():会话对象销毁失败 这相当琐碎,没有会话 已启动, 对象已提交,因此您无法销毁它。 该运营商并不总是有效的,例如用错误报告功能。 编辑: 1)导致此错误的原因是什么? 此错误通常是由于PHP尝试删除会话文件而导致的,但找不到它。

  • 服务器上的mongodb版本将比驱动程序版本旧。我的java驱动程序版本是3.6,Mongo-版本显示我是2.4 我该怎么解决这个问题?

  • 问题内容: 我在GlassFish上运行我的应用程序,我使用Spring Security和Hibernate。当我运行该应用程序时,以下警告和错误将显示在GlassFish控制台上。如何避免它们? hibernate.cfg.xml HibernateUtil.java 问题答案: 这些是在服务器保持运行状态下重新部署应用程序时可能发生的错误消息。 如果是关闭场景或开发重新部署,则可以安全地忽略