【问题标题】:MongoDB and NodeJS TypeError: mongoClient.close is not a functionMongoDB 和 NodeJS 类型错误:mongoClient.close 不是函数
【发布时间】:2022-02-17 12:26:48
【问题描述】:

当我尝试关闭 NodeJS 和 MongoDB 集群之间的连接时,我得到 mongoClient.close 不是一个函数。请帮忙

Node JS MongoDB 代码

const mongoClient = require("mongodb").MongoClient;

exports.getInfo = async (czytnik_id) => {
    return new Promise((resolve, reject) => {
        mongoClient.connect(process.env.URI, { useUnifiedTopology: true }, (err, db) => {
            if (err) reject(err);
            const dbo = db.db('TTI');
            const res = dbo.collection('3P').findOne({ id: czytnik_id });
            mongoClient.close()
            resolve(res);
        });
    });
}

【问题讨论】:

    标签: node.js mongodb mongodb-nodejs-driver


    【解决方案1】:

    根据docsMongoClient.connect() 中的回调接受一个错误和一个连接的客户端实例,这是要关闭的。在你的情况下,它似乎是db,所以尝试db.close() 而不是mongoClient.close()

    【讨论】:

    • 还是不行
    【解决方案2】:

    根据文档mongodb - npmConnection guideMongoClient 是一个类。你需要创建一个客户端实例,.close方法是一个实例方法。

    例子:

    const { MongoClient } = require('mongodb');
    // or as an es module:
    // import { MongoClient } from 'mongodb'
    
    // Connection URL
    const url = 'mongodb://localhost:27017';
    const client = new MongoClient(url);
    
    // Database Name
    const dbName = 'myProject';
    
    async function main() {
      // Use connect method to connect to the server
      await client.connect();
      console.log('Connected successfully to server');
      const db = client.db(dbName);
      const collection = db.collection('documents');
    
      // the following code examples can be pasted here...
    
      return 'done.';
    }
    
    main()
      .then(console.log)
      .catch(console.error)
      .finally(() => client.close());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2016-02-26
      • 2013-04-01
      • 2016-03-06
      • 1970-01-01
      • 2018-06-04
      相关资源
      最近更新 更多