用于检查CouchDB nodejs nano中是否存在文档的自定义函数

时间:2014-08-20 22:11:18

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

我一直在寻找谷歌的答案,根据发现的结果,我能够使用nano模块检查 CouchDB中是否存在表格。

但是,当我尝试将其设为自定义函数时,无论如何都会返回“undefined”。这是功能:

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' ) );

});

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

1 个答案:

答案 0 :(得分:2)

你的函数存在返回undefined,因为内部匿名函数返回你需要的值。

治愈这种疾病是为了改变你的功能存在

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);
});