【发布时间】:2015-08-08 23:30:41
【问题描述】:
为了我的一生,我无法解决这个问题。环顾四周并尝试了许多不同的方法来尝试实现这一目标。目前有以下代码。
var config = require("./config.js");
var cradle = require('cradle')
var MikroNode = require('mikronode');
var WebServer = require('./bin/www');
var Routers = "Hasnt changed";
var conndb = new(cradle.Connection)(config.couchdb.host);
var db = conndb.database(config.couchdb.db);
db.exists(function(err, exists){
if (err) { console.log('error', err);}
else if (exists) { console.log('Seems the Force is with you - Database Exists');}
else { db.create(); }
});
db.temporaryView({
map: function (doc){
if (doc.type=='ConfigRouter') emit(doc.name, doc);
}
}, function (err, res){
Routers = JSON.stringify(res);
}
);
console.log(Routers);
就目前而言,它会回应:
E:\Dev\MM>npm start
> MM@0.0.1 start E:\Dev\MM
> node ./Start.js
Hasnt changed
Seems the Force is with you - Database Exists
我假设它是对 CouchDB 的异步调用,并且在显示结果之前没有及时填充结果。我该如何解决这个问题?
【问题讨论】:
-
将其他代码放入exists()回调中
-
但是如果我把 console.log(res) 代替 Routers = JSON.stringify(res) 它可以工作并输出到控制台,而不是把它推到变量中
标签: javascript node.js