范围似乎不适用于MongoClient.connect

时间:2014-02-09 18:22:00

标签: node.js mongodb closures

我正在尝试将变量传递给像这样的Mongo查询:

function retrieveDocNumber( docNumber ) {
    MongoClient.connect( 'mongodb://' + this.mongoUrl + "/" + this.mongoDbName, function(error, db) {
        var lessonCollection = db.collection( 'lessons' );

        if ( error ) {
            console.log( error );
        } else {
            console.log( docNumber ) // Is undefined...
            lessonCollection.findOne( {number: docNumber}, function( error, doc ) {
                console.log( error );
                console.log( doc );
            } );
        }
    });

所以我不完全确定发生了什么,但是在connect函数中未定义docNumber(以及不直接在connect函数中包含范围的任何其他变量)。任何变通办法或显而易见的地方出错了吗?我需要使用用户定义的docNumber从数据库中检索文档。

1 个答案:

答案 0 :(得分:0)

嗯,愚蠢的问题,答案是因为docNumber被错误地解析为字符串而不是int ...