包装couchbase acccessfunction

下面是我的couchbase nodejs代码

kdatabase.js

var couchbase = require('couchbase'); var db = new couchbase.Connection({ host: "http://127.0.0.1:8091", bucket: "default", }, function(err) { if (err) throw err; db.get('id1', function(err, result) { if (err) throw err; console.log(result.value); process.exit(0); }); }); 

有用

但我希望把它包装成可以轻松操作的对象

 module.exports = function(app) { return new KDatabase(app); }; var KDatabase = function(app) { this.app = app; }; //couchbase KDatabase.prototype.query = function(userName) { var couchbase = require('couchbase'); var db = new couchbase.Connection({ host: "http://127.0.0.1:8091", bucket: "default", }, function(err) { if (err) throw err; console.log(userName + '!!!!--'); db.get(userName, function(err, result) { if (err) throw err; var o = result.value; console.log(o['password'] + '***--'); return o['password']; }); }); }; 

然后我打电话

 var db = require('kdatabase.js')(); var s = db.query(msg.username, function(err) { if (err) { console.log('aaa'); } console.log('bbb'); return; }); 

线

 console.log(userName + '!!!!--'); console.log(o['password'] + '***--'); 

正确显示

 console.log('aaa'); console.log('bbb'); 

从未执行

您的评论欢迎

你的query方法不需要一个callback参数,所以你永远不会调用它。

 KDatabase.prototype.query = function(userName, cb) { /* snip */ console.log(o['password'] + '***--'); cb(err, result);