Node.js 在couchdb函数之外调用变量?
我在让couchdb的响应处理程序处理node.js和now.js时遇到了很多麻烦。我的目标是给客户或小组回电话,告诉他们已经找到的某些信息以及客户发送的信息Node.js 在couchdb函数之外调用变量?,node.js,couchdb,nowjs-sockets,cradle,Node.js,Couchdb,Nowjs Sockets,Cradle,我在让couchdb的响应处理程序处理node.js和now.js时遇到了很多麻烦。我的目标是给客户或小组回电话,告诉他们已经找到的某些信息以及客户发送的信息 everyone.now.login = function(){ var username = this.now.lusername; var password = this.now.lpassword; var test; db.get(this.now.lusername, function (err, doc, test, user
everyone.now.login = function(){
var username = this.now.lusername;
var password = this.now.lpassword;
var test;
db.get(this.now.lusername, function (err, doc, test, username) {
if (err) {
console.log(+ username + " doesn't exist!");
} else {
console.log('Found user!');
console.log(doc);
test = 1;
}
});
console.log(test);
}
我在这里以测试为例。我在db.get外部声明它,在内部分配一个值以进行反馈,但当console.log在外部运行时,它没有值
我只是不明白,还是出了什么问题
(我确实可以使用doc。(无论值是多少)但是我想在这个调用之外将一个特定的变量传递回客户端)test变量在
console.log
中没有值,因为CouchDB响应还没有到达。登录函数执行以下步骤
用户名
,密码
,测试
未定义)this.now.lusername
),并指定一个函数在提取完成后运行console.log(test)
everyone.now.login = function(){
var username = this.now.lusername;
var password = this.now.lpassword;
db.get(this.now.lusername, function (err, doc, test, username) {
if (err) {
console.log(+ username + " doesn't exist!");
} else {
console.log('Found user!');
console.log(doc);
login_complete(doc);
}
});
function login_complete(doc) {
console.log('The login finished! Doc is ' + doc)
}
}
这样代码看起来仍然正确(代码的“故事”大部分从上到下流动),但它也正确执行(只有在登录实际完成后,login\u complete()
函数才会运行)