我正在尝试构建一个非常简单的脚本,使用node将内容插入到mongo中。这是我到目前为止所拥有的。我拿出所有错误捕获/日志记录以显示简单的代码
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/dbName';
var db;
var collection;
MongoClient.connect(url, function (err, db) {
collection = db.collection('myCollection');
insertFunction();
});
function insertFunction(){
var entry = {name: 'testUser1'}; // in final be function returning entry
collection.insertOne(entry);
}
此代码抛出以下错误:
TypeError:无法读取null
的属性'collection'
让我非常困惑。通常的规则是,如果在闭包内定义变量(db)而不使用var
进行,则会给出全局范围。那么为什么集合在处理函数中使用时会变成null
?