与打字稿`toArray`方法不工作的mongodb
我正在使用打字稿的Visual Studio。 这段代码中的所有东西都在编译 根据我正确使用toArray
的mongoDB文档 。 我有点新的打字稿,所以我不知道这是一个打字稿错误或mongodb。 tests
variables似乎有一个方法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
方法的callback中:
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 ); }); }); });
在做任何事情之前,你通常需要确保连接是开放的
- 如何在Express中强制parsing请求主体而不是json?
- FlowType包装获取而不会丢失默认types的注释
- 如何在node.js(express)中全局设置内容types
- 区分节点的本地function和匿名function
- Javascript node.js ORM,遵循数据映射器模式
- Typescript和Node js得到“不是函数错误”
- 如何使用node.js amqp模块将AQMP消息缓冲区转换为JSON对象?
- node.js中的头文件 – 套接口io资源解释为脚本,但是以MIMEtypes传递text / plain:
- 在将string转换为对象时获取syntaxError意外的令牌