我一直在寻找谷歌的答案,根据发现的结果,我能够使用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' ) );
});
这到底出了什么问题?我似乎无法正确理解它。
答案 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);
});