mongodb与typescript ' toArray '方法不工作

mongodb with typescript `toArray` method not working

本文关键字:工作 方法 toArray mongodb typescript      更新时间:2023-09-26

我使用Visual studio与typescript。这段代码中的所有内容都可以编译。根据mongoDB文档,我正确使用toArray。我对打字有点陌生,所以我不知道这是打字错误还是mongodb。 tests变量似乎有一个方法toArray,但当我调用它没有返回。 console.log调用甚至没有运行。根据文档和打字样例,这是正确的方法。谁能告诉我代码中的错误,或者"正确"的方法?

///<reference path="c:'DefinitelyTyped'mongodb'mongodb.d.ts"/>
import mongodb = require("mongodb")
var server = new mongodb.Server('localhost',27017, { auto_reconnect: true})
var db = new mongodb.Db('test', server, { w: 1 });
export interface Test {
    _id: mongodb.ObjectID;
    a: number;
}
db.open(function () { });
export function getTest(callback: (test: any) => void): void {
    db.collection('test', function (err, test_collection) {
        // test_collection.find().toArray -- this doesn't work either
        test_collection.find(function (err, tests) {
            console.log(tests, 'from getTest') // log's an object with `toArray` method
            tests.toArray(function (err, docs) { // nothing returned.  Seems like the callback isn't ran
                if (err) { console.log(err) }
                console.log(docs, 'from toArray')
                callback(docs)
            })
        })
    })
}

您的问题似乎不是将您的功能置于db.open方法的回调中:

var mongodb = require("mongodb");
var server = new mongodb.Server('localhost', 27017, { auto_reconnect: true });
var db = new mongodb.Db('test', server, { w: 1 });
db.open(function() {
  db.createCollection('test', function(err, collection) {
    collection.find().toArray(function(err,docs) {
      console.log( docs );
    });
  });
});

在做任何事情之前,通常需要确保连接是打开的