1

我一直在谷歌上寻找答案,根据找到的结果,我可以使用 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' ) );

});

这里到底出了什么问题?我似乎无法正确弄清楚。

4

1 回答 1

2

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

治疗这种疾病是为了反映你的功能存在

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);
});
于 2014-08-20T22:36:09.450 回答