下面是我的 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
方法不接受回调参数,因此您永远不会调用它。
KDatabase.prototype.query = function(userName, cb) {
/* snip */
console.log(o['password'] + '***--');
cb(err, result);
关于node.js - 包裹沙发底座访问功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25165965/