我正在设置NodeJS应用程序,我需要从etcd
获取数据。我正在使用nodejs-etcd
模块。
以下是我试图从闭包中的闭包中返回一个值的方法:
router.get('/', function(req, res, next) {
var etcd = req.etcd;
var result = etcd.read({key: '/reward/christopher'}, function (err, result, body) {
// parse the json body so that it can be read
object = JSON.parse(body);
// return the value of the key
return object.node.value;
});
console.log(result);
});
但是,我得到的只是来自etcd
对象的客户端连接数据,而不是我想要返回的值:
Client {
version: 'v2',
baseurl: 'http://turtle-host-03.turtlesystems.local:4001/v2',
agent: false }
GET / 500 807.246 ms - 1338
GET /stylesheets/style.css 304 6.856 ms - -
回调函数中etcd
服务器的值是正确的,它只是将它放入外部函数。
我怀疑这是一个误解,关于这个闭包在etcd
中的read方法的回调中是如何工作的。
更新1
按要求添加了代码,而不是链接到要点。