【问题标题】:Custom function to check if documents exists in CouchDB nodejs nano用于检查 CouchDB nodejs nano 中是否存在文档的自定义函数
【发布时间】:2019-05-23 18:52:01
【问题描述】:

我一直在 Google 上寻找答案,根据找到的结果,我能够检查使用 nano 模块在 CouchDB 中是否存在表。

但是,当我尝试将其设为自定义函数时,无论如何它总是返回“未定义”。这是函数:

var exists = function( id ) {

    this.head( id, function( err, body, header ) {

        if ( header[ 'status-code' ] == 200 )
            return true;
        else if ( err[ 'status-code' ] == 404 )
            return false;

        return false;

    });

}

叫它:

nano.db.create( 'databaseName', function() {

    var users = nano.use( 'databaseName' );

    console.log( exists.call( users, 'documentToCheck' ) );

});

这里到底出了什么问题?我似乎无法正确理解。

【问题讨论】:

    标签: javascript node.js express couchdb couchdb-nano


    【解决方案1】:

    您的函数 exists 返回未定义,因为内部匿名函数返回您需要的值。

    治愈这种疾病的方法是反射你的功能存在

    var exists = function( id , cb) {
    
        this.head( id, function( err, body, header ) {
    
            if ( header[ 'status-code' ] == 200 )
                cb(true);
            else if ( err[ 'status-code' ] == 404 )
                cb(false);
    
            cb(false);
    
        });
    
    }
    

    用法:

    exists.call(users, 'documentToCheck', function(check) {
        console.log(check);
    });
    

    【讨论】:

    • 我知道这与回调有关:-/。非常感谢您指出!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2012-07-24
    • 2015-07-14
    相关资源
    最近更新 更多